Best JavaScript code snippet using playwright-internal
FontAwesome.js
Source:FontAwesome.js  
1import React, { Component } from 'react';2import { Alert, Card, CardBody, CardHeader, Col, Row } from 'reactstrap';3class FontAwesome extends Component {4  render() {5    return (6      <div className="animated fadeIn">7        <Card id="new47">8          <CardHeader>9            <i className="fa fa-font-awesome"></i> 55 New Icons in 4.710          </CardHeader>11          <CardBody>12            <Row className="text-center">13              <Col className="fa-hover" xs="6" sm="4" md="3" lg="2">14                <i className="fa fa-address-book fa-lg mt-4"></i><br />address-book15              </Col>16              <Col xs="6" sm="4" md="3" lg="2">17                <i className="fa fa-address-book-o fa-lg mt-4"></i><br />address-book-o18              </Col>19              <Col xs="6" sm="4" md="3" lg="2">20                <i className="fa fa-address-card fa-lg mt-4"></i><br />address-card21              </Col>22              <Col xs="6" sm="4" md="3" lg="2">23                <i className="fa fa-address-card-o fa-lg mt-4"></i><br />address-card-o24              </Col>25              <Col xs="6" sm="4" md="3" lg="2">26                <i className="fa fa-bandcamp fa-lg mt-4"></i><br />bandcamp27              </Col>28              <Col xs="6" sm="4" md="3" lg="2">29                <i className="fa fa-bath fa-lg mt-4"></i><br />bath30              </Col>31              <Col xs="6" sm="4" md="3" lg="2">32                <i className="fa fa-bathtub fa-lg mt-4"></i><br />bathtub <span className="text-muted">(alias)</span>33              </Col>34              <Col xs="6" sm="4" md="3" lg="2">35                <i className="fa fa-drivers-license fa-lg mt-4"></i><br />drivers-license <span className="text-muted">(alias)</span>36              </Col>37              <Col xs="6" sm="4" md="3" lg="2">38                <i className="fa fa-drivers-license-o fa-lg mt-4"></i><br />drivers-license-o <span className="text-muted">(alias)</span>39              </Col>40              <Col xs="6" sm="4" md="3" lg="2">41                <i className="fa fa-eercast fa-lg mt-4"></i><br />eercast42              </Col>43              <Col xs="6" sm="4" md="3" lg="2">44                <i className="fa fa-envelope-open fa-lg mt-4"></i><br />envelope-open45              </Col>46              <Col xs="6" sm="4" md="3" lg="2">47                <i className="fa fa-envelope-open-o fa-lg mt-4"></i><br />envelope-open-o48              </Col>49              <Col xs="6" sm="4" md="3" lg="2">50                <i className="fa fa-etsy fa-lg mt-4"></i><br />etsy51              </Col>52              <Col xs="6" sm="4" md="3" lg="2">53                <i className="fa fa-free-code-camp fa-lg mt-4"></i><br />free-code-camp54              </Col>55              <Col xs="6" sm="4" md="3" lg="2">56                <i className="fa fa-grav fa-lg mt-4"></i><br />grav57              </Col>58              <Col xs="6" sm="4" md="3" lg="2">59                <i className="fa fa-handshake-o fa-lg mt-4"></i><br />handshake-o60              </Col>61              <Col xs="6" sm="4" md="3" lg="2">62                <i className="fa fa-id-badge fa-lg mt-4"></i><br />id-badge63              </Col>64              <Col xs="6" sm="4" md="3" lg="2">65                <i className="fa fa-id-card fa-lg mt-4"></i><br />id-card66              </Col>67              <Col xs="6" sm="4" md="3" lg="2">68                <i className="fa fa-id-card-o fa-lg mt-4"></i><br />id-card-o69              </Col>70              <Col xs="6" sm="4" md="3" lg="2">71                <i className="fa fa-imdb fa-lg mt-4"></i><br />imdb72              </Col>73              <Col xs="6" sm="4" md="3" lg="2">74                <i className="fa fa-linode fa-lg mt-4"></i><br />linode75              </Col>76              <Col xs="6" sm="4" md="3" lg="2">77                <i className="fa fa-meetup fa-lg mt-4"></i><br />meetup78              </Col>79              <Col xs="6" sm="4" md="3" lg="2">80                <i className="fa fa-microchip fa-lg mt-4"></i><br />microchip81              </Col>82              <Col xs="6" sm="4" md="3" lg="2">83                <i className="fa fa-podcast fa-lg mt-4"></i><br />podcast84              </Col>85              <Col xs="6" sm="4" md="3" lg="2">86                <i className="fa fa-quora fa-lg mt-4"></i><br />quora87              </Col>88              <Col xs="6" sm="4" md="3" lg="2">89                <i className="fa fa-ravelry fa-lg mt-4"></i><br />ravelry90              </Col>91              <Col xs="6" sm="4" md="3" lg="2">92                <i className="fa fa-s15 fa-lg mt-4"></i><br />s15 <span className="text-muted">(alias)</span>93              </Col>94              <Col xs="6" sm="4" md="3" lg="2">95                <i className="fa fa-shower fa-lg mt-4"></i><br />shower96              </Col>97              <Col xs="6" sm="4" md="3" lg="2">98                <i className="fa fa-snowflake-o fa-lg mt-4"></i><br />snowflake-o99              </Col>100              <Col xs="6" sm="4" md="3" lg="2">101                <i className="fa fa-superpowers fa-lg mt-4"></i><br />superpowers102              </Col>103              <Col xs="6" sm="4" md="3" lg="2">104                <i className="fa fa-telegram fa-lg mt-4"></i><br />telegram105              </Col>106              <Col xs="6" sm="4" md="3" lg="2">107                <i className="fa fa-thermometer fa-lg mt-4"></i><br />thermometer <span className="text-muted">(alias)</span>108              </Col>109              <Col xs="6" sm="4" md="3" lg="2">110                <i className="fa fa-thermometer-0 fa-lg mt-4"></i><br />thermometer-0 <span className="text-muted">(alias)</span>111              </Col>112              <Col xs="6" sm="4" md="3" lg="2">113                <i className="fa fa-thermometer-1 fa-lg mt-4"></i><br />thermometer-1 <span className="text-muted">(alias)</span>114              </Col>115              <Col xs="6" sm="4" md="3" lg="2">116                <i className="fa fa-thermometer-2 fa-lg mt-4"></i><br />thermometer-2 <span className="text-muted">(alias)</span>117              </Col>118              <Col xs="6" sm="4" md="3" lg="2">119                <i className="fa fa-thermometer-3 fa-lg mt-4"></i><br />thermometer-3 <span className="text-muted">(alias)</span>120              </Col>121              <Col xs="6" sm="4" md="3" lg="2">122                <i className="fa fa-thermometer-4 fa-lg mt-4"></i><br />thermometer-4 <span className="text-muted">(alias)</span>123              </Col>124              <Col xs="6" sm="4" md="3" lg="2">125                <i className="fa fa-thermometer-empty fa-lg mt-4"></i><br />thermometer-empty126              </Col>127              <Col xs="6" sm="4" md="3" lg="2">128                <i className="fa fa-thermometer-full fa-lg mt-4"></i><br />thermometer-full129              </Col>130              <Col xs="6" sm="4" md="3" lg="2">131                <i className="fa fa-thermometer-half fa-lg mt-4"></i><br />thermometer-half132              </Col>133              <Col xs="6" sm="4" md="3" lg="2">134                <i className="fa fa-thermometer-quarter fa-lg mt-4"></i><br />thermometer-quarter135              </Col>136              <Col xs="6" sm="4" md="3" lg="2">137                <i className="fa fa-thermometer-three-quarters fa-lg mt-4"></i><br />thermometer-three-quarters138              </Col>139              <Col xs="6" sm="4" md="3" lg="2">140                <i className="fa fa-times-rectangle fa-lg mt-4"></i><br />times-rectangle <span className="text-muted">(alias)</span>141              </Col>142              <Col xs="6" sm="4" md="3" lg="2">143                <i className="fa fa-times-rectangle-o fa-lg mt-4"></i><br />times-rectangle-o <span className="text-muted">(alias)</span>144              </Col>145              <Col xs="6" sm="4" md="3" lg="2">146                <i className="fa fa-user-circle fa-lg mt-4"></i><br />user-circle147              </Col>148              <Col xs="6" sm="4" md="3" lg="2">149                <i className="fa fa-user-circle-o fa-lg mt-4"></i><br />user-circle-o150              </Col>151              <Col xs="6" sm="4" md="3" lg="2">152                <i className="fa fa-user-o fa-lg mt-4"></i><br />user-o153              </Col>154              <Col xs="6" sm="4" md="3" lg="2">155                <i className="fa fa-vcard fa-lg mt-4"></i><br />vcard <span className="text-muted">(alias)</span>156              </Col>157              <Col xs="6" sm="4" md="3" lg="2">158                <i className="fa fa-vcard-o fa-lg mt-4"></i><br />vcard-o <span className="text-muted">(alias)</span>159              </Col>160              <Col xs="6" sm="4" md="3" lg="2">161                <i className="fa fa-window-close fa-lg mt-4"></i><br />window-close162              </Col>163              <Col xs="6" sm="4" md="3" lg="2">164                <i className="fa fa-window-close-o fa-lg mt-4"></i><br />window-close-o165              </Col>166              <Col xs="6" sm="4" md="3" lg="2">167                <i className="fa fa-window-maximize fa-lg mt-4"></i><br />window-maximize168              </Col>169              <Col xs="6" sm="4" md="3" lg="2">170                <i className="fa fa-window-minimize fa-lg mt-4"></i><br />window-minimize171              </Col>172              <Col xs="6" sm="4" md="3" lg="2">173                <i className="fa fa-window-restore fa-lg mt-4"></i><br />window-restore174              </Col>175              <Col xs="6" sm="4" md="3" lg="2">176                <i className="fa fa-wpexplorer fa-lg mt-4"></i><br />wpexplorer177              </Col>178            </Row>179          </CardBody>180        </Card>181        <Card id="new">182          <CardHeader>20 New Icons in 4.5</CardHeader>183          <CardBody>184            <Row className="text-center">185              <Col xs="6" sm="4" md="3" lg="2">186                <i className="fa fa-bluetooth fa-lg mt-4"></i><br />bluetooth187              </Col>188              <Col xs="6" sm="4" md="3" lg="2">189                <i className="fa fa-bluetooth-b fa-lg mt-4"></i><br />bluetooth-b190              </Col>191              <Col xs="6" sm="4" md="3" lg="2">192                <i className="fa fa-codiepie fa-lg mt-4"></i><br />codiepie193              </Col>194              <Col xs="6" sm="4" md="3" lg="2">195                <i className="fa fa-credit-card-alt fa-lg mt-4"></i><br />credit-card-alt196              </Col>197              <Col xs="6" sm="4" md="3" lg="2">198                <i className="fa fa-edge fa-lg mt-4"></i><br />edge199              </Col>200              <Col xs="6" sm="4" md="3" lg="2">201                <i className="fa fa-fort-awesome fa-lg mt-4"></i><br />fort-awesome202              </Col>203              <Col xs="6" sm="4" md="3" lg="2">204                <i className="fa fa-hashtag fa-lg mt-4"></i><br />hashtag205              </Col>206              <Col xs="6" sm="4" md="3" lg="2">207                <i className="fa fa-mixcloud fa-lg mt-4"></i><br />mixcloud208              </Col>209              <Col xs="6" sm="4" md="3" lg="2">210                <i className="fa fa-modx fa-lg mt-4"></i><br />modx211              </Col>212              <Col xs="6" sm="4" md="3" lg="2">213                <i className="fa fa-pause-circle fa-lg mt-4"></i><br />pause-circle214              </Col>215              <Col xs="6" sm="4" md="3" lg="2">216                <i className="fa fa-pause-circle-o fa-lg mt-4"></i><br />pause-circle-o217              </Col>218              <Col xs="6" sm="4" md="3" lg="2">219                <i className="fa fa-percent fa-lg mt-4"></i><br />percent220              </Col>221              <Col xs="6" sm="4" md="3" lg="2">222                <i className="fa fa-product-hunt fa-lg mt-4"></i><br />product-hunt223              </Col>224              <Col xs="6" sm="4" md="3" lg="2">225                <i className="fa fa-reddit-alien fa-lg mt-4"></i><br />reddit-alien226              </Col>227              <Col xs="6" sm="4" md="3" lg="2">228                <i className="fa fa-scribd fa-lg mt-4"></i><br />scribd229              </Col>230              <Col xs="6" sm="4" md="3" lg="2">231                <i className="fa fa-shopping-bag fa-lg mt-4"></i><br />shopping-bag232              </Col>233              <Col xs="6" sm="4" md="3" lg="2">234                <i className="fa fa-shopping-basket fa-lg mt-4"></i><br />shopping-basket235              </Col>236              <Col xs="6" sm="4" md="3" lg="2">237                <i className="fa fa-stop-circle fa-lg mt-4"></i><br />stop-circle238              </Col>239              <Col xs="6" sm="4" md="3" lg="2">240                <i className="fa fa-stop-circle-o fa-lg mt-4"></i><br />stop-circle-o241              </Col>242              <Col xs="6" sm="4" md="3" lg="2">243                <i className="fa fa-usb fa-lg mt-4"></i><br />usb244              </Col>245            </Row>246          </CardBody>247        </Card>248        <Card id="web-application">249          <CardHeader>Web Application Icons</CardHeader>250          <CardBody>251            <Row className="text-center">252              <Col xs="6" sm="4" md="3" lg="2">253                <i className="fa fa-adjust fa-lg mt-4"></i><br />adjust254              </Col>255              <Col xs="6" sm="4" md="3" lg="2">256                <i className="fa fa-anchor fa-lg mt-4"></i><br />anchor257              </Col>258              <Col xs="6" sm="4" md="3" lg="2">259                <i className="fa fa-archive fa-lg mt-4"></i><br />archive260              </Col>261              <Col xs="6" sm="4" md="3" lg="2">262                <i className="fa fa-area-chart fa-lg mt-4"></i><br />area-chart263              </Col>264              <Col xs="6" sm="4" md="3" lg="2">265                <i className="fa fa-arrows fa-lg mt-4"></i><br />arrows266              </Col>267              <Col xs="6" sm="4" md="3" lg="2">268                <i className="fa fa-arrows-h fa-lg mt-4"></i><br />arrows-h269              </Col>270              <Col xs="6" sm="4" md="3" lg="2">271                <i className="fa fa-arrows-v fa-lg mt-4"></i><br />arrows-v272              </Col>273              <Col xs="6" sm="4" md="3" lg="2">274                <i className="fa fa-asterisk fa-lg mt-4"></i><br />asterisk275              </Col>276              <Col xs="6" sm="4" md="3" lg="2">277                <i className="fa fa-at fa-lg mt-4"></i><br />at278              </Col>279              <Col xs="6" sm="4" md="3" lg="2">280                <i className="fa fa-automobile fa-lg mt-4"></i><br />automobile <span281                className="text-muted">(alias)</span>282              </Col>283              <Col xs="6" sm="4" md="3" lg="2">284                <i className="fa fa-balance-scale fa-lg mt-4"></i><br />balance-scale285              </Col>286              <Col xs="6" sm="4" md="3" lg="2">287                <i className="fa fa-ban fa-lg mt-4"></i><br />ban288              </Col>289              <Col xs="6" sm="4" md="3" lg="2">290                <i className="fa fa-bank fa-lg mt-4"></i><br />bank <span className="text-muted">(alias)</span>291              </Col>292              <Col xs="6" sm="4" md="3" lg="2">293                <i className="fa fa-bar-chart fa-lg mt-4"></i><br />bar-chart294              </Col>295              <Col xs="6" sm="4" md="3" lg="2">296                <i className="fa fa-bar-chart-o fa-lg mt-4"></i><br />bar-chart-o <span297                className="text-muted">(alias)</span>298              </Col>299              <Col xs="6" sm="4" md="3" lg="2">300                <i className="fa fa-barcode fa-lg mt-4"></i><br />barcode301              </Col>302              <Col xs="6" sm="4" md="3" lg="2">303                <i className="fa fa-bars fa-lg mt-4"></i><br />bars304              </Col>305              <Col xs="6" sm="4" md="3" lg="2">306                <i className="fa fa-battery-0 fa-lg mt-4"></i><br />battery-0 <span className="text-muted">(alias)</span>307              </Col>308              <Col xs="6" sm="4" md="3" lg="2">309                <i className="fa fa-battery-1 fa-lg mt-4"></i><br />battery-1 <span className="text-muted">(alias)</span>310              </Col>311              <Col xs="6" sm="4" md="3" lg="2">312                <i className="fa fa-battery-2 fa-lg mt-4"></i><br />battery-2 <span className="text-muted">(alias)</span>313              </Col>314              <Col xs="6" sm="4" md="3" lg="2">315                <i className="fa fa-battery-3 fa-lg mt-4"></i><br />battery-3 <span className="text-muted">(alias)</span>316              </Col>317              <Col xs="6" sm="4" md="3" lg="2">318                <i className="fa fa-battery-4 fa-lg mt-4"></i><br />battery-4 <span className="text-muted">(alias)</span>319              </Col>320              <Col xs="6" sm="4" md="3" lg="2">321                <i className="fa fa-battery-empty fa-lg mt-4"></i><br />battery-empty322              </Col>323              <Col xs="6" sm="4" md="3" lg="2">324                <i className="fa fa-battery-full fa-lg mt-4"></i><br />battery-full325              </Col>326              <Col xs="6" sm="4" md="3" lg="2">327                <i className="fa fa-battery-half fa-lg mt-4"></i><br />battery-half328              </Col>329              <Col xs="6" sm="4" md="3" lg="2">330                <i className="fa fa-battery-quarter fa-lg mt-4"></i><br />battery-quarter331              </Col>332              <Col xs="6" sm="4" md="3" lg="2">333                <i className="fa fa-battery-three-quarters fa-lg mt-4"></i><br />battery-three-quarters334              </Col>335              <Col xs="6" sm="4" md="3" lg="2">336                <i className="fa fa-bed fa-lg mt-4"></i><br />bed337              </Col>338              <Col xs="6" sm="4" md="3" lg="2">339                <i className="fa fa-beer fa-lg mt-4"></i><br />beer340              </Col>341              <Col xs="6" sm="4" md="3" lg="2">342                <i className="fa fa-bell fa-lg mt-4"></i><br />bell343              </Col>344              <Col xs="6" sm="4" md="3" lg="2">345                <i className="fa fa-bell-o fa-lg mt-4"></i><br />bell-o346              </Col>347              <Col xs="6" sm="4" md="3" lg="2">348                <i className="fa fa-bell-slash fa-lg mt-4"></i><br />bell-slash349              </Col>350              <Col xs="6" sm="4" md="3" lg="2">351                <i className="fa fa-bell-slash-o fa-lg mt-4"></i><br />bell-slash-o352              </Col>353              <Col xs="6" sm="4" md="3" lg="2">354                <i className="fa fa-bicycle fa-lg mt-4"></i><br />bicycle355              </Col>356              <Col xs="6" sm="4" md="3" lg="2">357                <i className="fa fa-binoculars fa-lg mt-4"></i><br />binoculars358              </Col>359              <Col xs="6" sm="4" md="3" lg="2">360                <i className="fa fa-birthday-cake fa-lg mt-4"></i><br />birthday-cake361              </Col>362              <Col xs="6" sm="4" md="3" lg="2">363                <i className="fa fa-bluetooth fa-lg mt-4"></i><br />bluetooth364              </Col>365              <Col xs="6" sm="4" md="3" lg="2">366                <i className="fa fa-bluetooth-b fa-lg mt-4"></i><br />bluetooth-b367              </Col>368              <Col xs="6" sm="4" md="3" lg="2">369                <i className="fa fa-bolt fa-lg mt-4"></i><br />bolt370              </Col>371              <Col xs="6" sm="4" md="3" lg="2">372                <i className="fa fa-bomb fa-lg mt-4"></i><br />bomb373              </Col>374              <Col xs="6" sm="4" md="3" lg="2">375                <i className="fa fa-book fa-lg mt-4"></i><br />book376              </Col>377              <Col xs="6" sm="4" md="3" lg="2">378                <i className="fa fa-bookmark fa-lg mt-4"></i><br />bookmark379              </Col>380              <Col xs="6" sm="4" md="3" lg="2">381                <i className="fa fa-bookmark-o fa-lg mt-4"></i><br />bookmark-o382              </Col>383              <Col xs="6" sm="4" md="3" lg="2">384                <i className="fa fa-briefcase fa-lg mt-4"></i><br />briefcase385              </Col>386              <Col xs="6" sm="4" md="3" lg="2">387                <i className="fa fa-bug fa-lg mt-4"></i><br />bug388              </Col>389              <Col xs="6" sm="4" md="3" lg="2">390                <i className="fa fa-building fa-lg mt-4"></i><br />building391              </Col>392              <Col xs="6" sm="4" md="3" lg="2">393                <i className="fa fa-building-o fa-lg mt-4"></i><br />building-o394              </Col>395              <Col xs="6" sm="4" md="3" lg="2">396                <i className="fa fa-bullhorn fa-lg mt-4"></i><br />bullhorn397              </Col>398              <Col xs="6" sm="4" md="3" lg="2">399                <i className="fa fa-bullseye fa-lg mt-4"></i><br />bullseye400              </Col>401              <Col xs="6" sm="4" md="3" lg="2">402                <i className="fa fa-bus fa-lg mt-4"></i><br />bus403              </Col>404              <Col xs="6" sm="4" md="3" lg="2">405                <i className="fa fa-cab fa-lg mt-4"></i><br />cab <span className="text-muted">(alias)</span>406              </Col>407              <Col xs="6" sm="4" md="3" lg="2">408                <i className="fa fa-calculator fa-lg mt-4"></i><br />calculator409              </Col>410              <Col xs="6" sm="4" md="3" lg="2">411                <i className="fa fa-calendar fa-lg mt-4"></i><br />calendar412              </Col>413              <Col xs="6" sm="4" md="3" lg="2">414                <i className="fa fa-calendar-check-o fa-lg mt-4"></i><br />calendar-check-o415              </Col>416              <Col xs="6" sm="4" md="3" lg="2">417                <i className="fa fa-calendar-minus-o fa-lg mt-4"></i><br />calendar-minus-o418              </Col>419              <Col xs="6" sm="4" md="3" lg="2">420                <i className="fa fa-calendar-o fa-lg mt-4"></i><br />calendar-o421              </Col>422              <Col xs="6" sm="4" md="3" lg="2">423                <i className="fa fa-calendar-plus-o fa-lg mt-4"></i><br />calendar-plus-o424              </Col>425              <Col xs="6" sm="4" md="3" lg="2">426                <i className="fa fa-calendar-times-o fa-lg mt-4"></i><br />calendar-times-o427              </Col>428              <Col xs="6" sm="4" md="3" lg="2">429                <i className="fa fa-camera fa-lg mt-4"></i><br />camera430              </Col>431              <Col xs="6" sm="4" md="3" lg="2">432                <i className="fa fa-camera-retro fa-lg mt-4"></i><br />camera-retro433              </Col>434              <Col xs="6" sm="4" md="3" lg="2">435                <i className="fa fa-car fa-lg mt-4"></i><br />car436              </Col>437              <Col xs="6" sm="4" md="3" lg="2">438                <i className="fa fa-caret-square-o-down fa-lg mt-4"></i><br />caret-square-o-down439              </Col>440              <Col xs="6" sm="4" md="3" lg="2">441                <i className="fa fa-caret-square-o-left fa-lg mt-4"></i><br />caret-square-o-left442              </Col>443              <Col xs="6" sm="4" md="3" lg="2">444                <i className="fa fa-caret-square-o-right fa-lg mt-4"></i><br />caret-square-o-right445              </Col>446              <Col xs="6" sm="4" md="3" lg="2">447                <i className="fa fa-caret-square-o-up fa-lg mt-4"></i><br />caret-square-o-up448              </Col>449              <Col xs="6" sm="4" md="3" lg="2">450                <i className="fa fa-cart-arrow-down fa-lg mt-4"></i><br />cart-arrow-down451              </Col>452              <Col xs="6" sm="4" md="3" lg="2">453                <i className="fa fa-cart-plus fa-lg mt-4"></i><br />cart-plus454              </Col>455              <Col xs="6" sm="4" md="3" lg="2">456                <i className="fa fa-cc fa-lg mt-4"></i><br />cc457              </Col>458              <Col xs="6" sm="4" md="3" lg="2">459                <i className="fa fa-certificate fa-lg mt-4"></i><br />certificate460              </Col>461              <Col xs="6" sm="4" md="3" lg="2">462                <i className="fa fa-check fa-lg mt-4"></i><br />check463              </Col>464              <Col xs="6" sm="4" md="3" lg="2">465                <i className="fa fa-check-circle fa-lg mt-4"></i><br />check-circle466              </Col>467              <Col xs="6" sm="4" md="3" lg="2">468                <i className="fa fa-check-circle-o fa-lg mt-4"></i><br />check-circle-o469              </Col>470              <Col xs="6" sm="4" md="3" lg="2">471                <i className="fa fa-check-square fa-lg mt-4"></i><br />check-square472              </Col>473              <Col xs="6" sm="4" md="3" lg="2">474                <i className="fa fa-check-square-o fa-lg mt-4"></i><br />check-square-o475              </Col>476              <Col xs="6" sm="4" md="3" lg="2">477                <i className="fa fa-child fa-lg mt-4"></i><br />child478              </Col>479              <Col xs="6" sm="4" md="3" lg="2">480                <i className="fa fa-circle fa-lg mt-4"></i><br />circle481              </Col>482              <Col xs="6" sm="4" md="3" lg="2">483                <i className="fa fa-circle-o fa-lg mt-4"></i><br />circle-o484              </Col>485              <Col xs="6" sm="4" md="3" lg="2">486                <i className="fa fa-circle-o-notch fa-lg mt-4"></i><br />circle-o-notch487              </Col>488              <Col xs="6" sm="4" md="3" lg="2">489                <i className="fa fa-circle-thin fa-lg mt-4"></i><br />circle-thin490              </Col>491              <Col xs="6" sm="4" md="3" lg="2">492                <i className="fa fa-clock-o fa-lg mt-4"></i><br />clock-o493              </Col>494              <Col xs="6" sm="4" md="3" lg="2">495                <i className="fa fa-clone fa-lg mt-4"></i><br />clone496              </Col>497              <Col xs="6" sm="4" md="3" lg="2">498                <i className="fa fa-close fa-lg mt-4"></i><br />close <span className="text-muted">(alias)</span>499              </Col>500              <Col xs="6" sm="4" md="3" lg="2">501                <i className="fa fa-cloud fa-lg mt-4"></i><br />cloud502              </Col>503              <Col xs="6" sm="4" md="3" lg="2">504                <i className="fa fa-cloud-download fa-lg mt-4"></i><br />cloud-download505              </Col>506              <Col xs="6" sm="4" md="3" lg="2">507                <i className="fa fa-cloud-upload fa-lg mt-4"></i><br />cloud-upload508              </Col>509              <Col xs="6" sm="4" md="3" lg="2">510                <i className="fa fa-code fa-lg mt-4"></i><br />code511              </Col>512              <Col xs="6" sm="4" md="3" lg="2">513                <i className="fa fa-code-fork fa-lg mt-4"></i><br />code-fork514              </Col>515              <Col xs="6" sm="4" md="3" lg="2">516                <i className="fa fa-coffee fa-lg mt-4"></i><br />coffee517              </Col>518              <Col xs="6" sm="4" md="3" lg="2">519                <i className="fa fa-cog fa-lg mt-4"></i><br />cog520              </Col>521              <Col xs="6" sm="4" md="3" lg="2">522                <i className="fa fa-cogs fa-lg mt-4"></i><br />cogs523              </Col>524              <Col xs="6" sm="4" md="3" lg="2">525                <i className="fa fa-comment fa-lg mt-4"></i><br />comment526              </Col>527              <Col xs="6" sm="4" md="3" lg="2">528                <i className="fa fa-comment-o fa-lg mt-4"></i><br />comment-o529              </Col>530              <Col xs="6" sm="4" md="3" lg="2">531                <i className="fa fa-commenting fa-lg mt-4"></i><br />commenting532              </Col>533              <Col xs="6" sm="4" md="3" lg="2">534                <i className="fa fa-commenting-o fa-lg mt-4"></i><br />commenting-o535              </Col>536              <Col xs="6" sm="4" md="3" lg="2">537                <i className="fa fa-comments fa-lg mt-4"></i><br />comments538              </Col>539              <Col xs="6" sm="4" md="3" lg="2">540                <i className="fa fa-comments-o fa-lg mt-4"></i><br />comments-o541              </Col>542              <Col xs="6" sm="4" md="3" lg="2">543                <i className="fa fa-compass fa-lg mt-4"></i><br />compass544              </Col>545              <Col xs="6" sm="4" md="3" lg="2">546                <i className="fa fa-copyright fa-lg mt-4"></i><br />copyright547              </Col>548              <Col xs="6" sm="4" md="3" lg="2">549                <i className="fa fa-creative-commons fa-lg mt-4"></i><br />creative-commons550              </Col>551              <Col xs="6" sm="4" md="3" lg="2">552                <i className="fa fa-credit-card fa-lg mt-4"></i><br />credit-card553              </Col>554              <Col xs="6" sm="4" md="3" lg="2">555                <i className="fa fa-credit-card-alt fa-lg mt-4"></i><br />credit-card-alt556              </Col>557              <Col xs="6" sm="4" md="3" lg="2">558                <i className="fa fa-crop fa-lg mt-4"></i><br />crop559              </Col>560              <Col xs="6" sm="4" md="3" lg="2">561                <i className="fa fa-crosshairs fa-lg mt-4"></i><br />crosshairs562              </Col>563              <Col xs="6" sm="4" md="3" lg="2">564                <i className="fa fa-cube fa-lg mt-4"></i><br />cube565              </Col>566              <Col xs="6" sm="4" md="3" lg="2">567                <i className="fa fa-cubes fa-lg mt-4"></i><br />cubes568              </Col>569              <Col xs="6" sm="4" md="3" lg="2">570                <i className="fa fa-cutlery fa-lg mt-4"></i><br />cutlery571              </Col>572              <Col xs="6" sm="4" md="3" lg="2">573                <i className="fa fa-dashboard fa-lg mt-4"></i><br />dashboard <span className="text-muted">(alias)</span>574              </Col>575              <Col xs="6" sm="4" md="3" lg="2">576                <i className="fa fa-database fa-lg mt-4"></i><br />database577              </Col>578              <Col xs="6" sm="4" md="3" lg="2">579                <i className="fa fa-desktop fa-lg mt-4"></i><br />desktop580              </Col>581              <Col xs="6" sm="4" md="3" lg="2">582                <i className="fa fa-diamond fa-lg mt-4"></i><br />diamond583              </Col>584              <Col xs="6" sm="4" md="3" lg="2">585                <i className="fa fa-dot-circle-o fa-lg mt-4"></i><br />dot-circle-o586              </Col>587              <Col xs="6" sm="4" md="3" lg="2">588                <i className="fa fa-download fa-lg mt-4"></i><br />download589              </Col>590              <Col xs="6" sm="4" md="3" lg="2">591                <i className="fa fa-edit fa-lg mt-4"></i><br />edit <span className="text-muted">(alias)</span>592              </Col>593              <Col xs="6" sm="4" md="3" lg="2">594                <i className="fa fa-ellipsis-h fa-lg mt-4"></i><br />ellipsis-h595              </Col>596              <Col xs="6" sm="4" md="3" lg="2">597                <i className="fa fa-ellipsis-v fa-lg mt-4"></i><br />ellipsis-v598              </Col>599              <Col xs="6" sm="4" md="3" lg="2">600                <i className="fa fa-envelope fa-lg mt-4"></i><br />envelope601              </Col>602              <Col xs="6" sm="4" md="3" lg="2">603                <i className="fa fa-envelope-o fa-lg mt-4"></i><br />envelope-o604              </Col>605              <Col xs="6" sm="4" md="3" lg="2">606                <i className="fa fa-envelope-square fa-lg mt-4"></i><br />envelope-square607              </Col>608              <Col xs="6" sm="4" md="3" lg="2">609                <i className="fa fa-eraser fa-lg mt-4"></i><br />eraser610              </Col>611              <Col xs="6" sm="4" md="3" lg="2">612                <i className="fa fa-exchange fa-lg mt-4"></i><br />exchange613              </Col>614              <Col xs="6" sm="4" md="3" lg="2">615                <i className="fa fa-exclamation fa-lg mt-4"></i><br />exclamation616              </Col>617              <Col xs="6" sm="4" md="3" lg="2">618                <i className="fa fa-exclamation-circle fa-lg mt-4"></i><br />exclamation-circle619              </Col>620              <Col xs="6" sm="4" md="3" lg="2">621                <i className="fa fa-exclamation-triangle fa-lg mt-4"></i><br />exclamation-triangle622              </Col>623              <Col xs="6" sm="4" md="3" lg="2">624                <i className="fa fa-external-link fa-lg mt-4"></i><br />external-link625              </Col>626              <Col xs="6" sm="4" md="3" lg="2">627                <i className="fa fa-external-link-square fa-lg mt-4"></i><br />external-link-square628              </Col>629              <Col xs="6" sm="4" md="3" lg="2">630                <i className="fa fa-eye fa-lg mt-4"></i><br />eye631              </Col>632              <Col xs="6" sm="4" md="3" lg="2">633                <i className="fa fa-eye-slash fa-lg mt-4"></i><br />eye-slash634              </Col>635              <Col xs="6" sm="4" md="3" lg="2">636                <i className="fa fa-eyedropper fa-lg mt-4"></i><br />eyedropper637              </Col>638              <Col xs="6" sm="4" md="3" lg="2">639                <i className="fa fa-fax fa-lg mt-4"></i><br />fax640              </Col>641              <Col xs="6" sm="4" md="3" lg="2">642                <i className="fa fa-feed fa-lg mt-4"></i><br />feed <span className="text-muted">(alias)</span>643              </Col>644              <Col xs="6" sm="4" md="3" lg="2">645                <i className="fa fa-female fa-lg mt-4"></i><br />female646              </Col>647              <Col xs="6" sm="4" md="3" lg="2">648                <i className="fa fa-fighter-jet fa-lg mt-4"></i><br />fighter-jet649              </Col>650              <Col xs="6" sm="4" md="3" lg="2">651                <i className="fa fa-file-archive-o fa-lg mt-4"></i><br />file-archive-o652              </Col>653              <Col xs="6" sm="4" md="3" lg="2">654                <i className="fa fa-file-audio-o fa-lg mt-4"></i><br />file-audio-o655              </Col>656              <Col xs="6" sm="4" md="3" lg="2">657                <i className="fa fa-file-code-o fa-lg mt-4"></i><br />file-code-o658              </Col>659              <Col xs="6" sm="4" md="3" lg="2">660                <i className="fa fa-file-excel-o fa-lg mt-4"></i><br />file-excel-o661              </Col>662              <Col xs="6" sm="4" md="3" lg="2">663                <i className="fa fa-file-image-o fa-lg mt-4"></i><br />file-image-o664              </Col>665              <Col xs="6" sm="4" md="3" lg="2">666                <i className="fa fa-file-movie-o fa-lg mt-4"></i><br />file-movie-o <span667                className="text-muted">(alias)</span>668              </Col>669              <Col xs="6" sm="4" md="3" lg="2">670                <i className="fa fa-file-pdf-o fa-lg mt-4"></i><br />file-pdf-o671              </Col>672              <Col xs="6" sm="4" md="3" lg="2">673                <i className="fa fa-file-photo-o fa-lg mt-4"></i><br />file-photo-o <span674                className="text-muted">(alias)</span>675              </Col>676              <Col xs="6" sm="4" md="3" lg="2">677                <i className="fa fa-file-picture-o fa-lg mt-4"></i><br />file-picture-o <span className="text-muted">(alias)</span>678              </Col>679              <Col xs="6" sm="4" md="3" lg="2">680                <i className="fa fa-file-powerpoint-o fa-lg mt-4"></i><br />file-powerpoint-o681              </Col>682              <Col xs="6" sm="4" md="3" lg="2">683                <i className="fa fa-file-sound-o fa-lg mt-4"></i><br />file-sound-o <span684                className="text-muted">(alias)</span>685              </Col>686              <Col xs="6" sm="4" md="3" lg="2">687                <i className="fa fa-file-video-o fa-lg mt-4"></i><br />file-video-o688              </Col>689              <Col xs="6" sm="4" md="3" lg="2">690                <i className="fa fa-file-word-o fa-lg mt-4"></i><br />file-word-o691              </Col>692              <Col xs="6" sm="4" md="3" lg="2">693                <i className="fa fa-file-zip-o fa-lg mt-4"></i><br />file-zip-o <span694                className="text-muted">(alias)</span>695              </Col>696              <Col xs="6" sm="4" md="3" lg="2">697                <i className="fa fa-film fa-lg mt-4"></i><br />film698              </Col>699              <Col xs="6" sm="4" md="3" lg="2">700                <i className="fa fa-filter fa-lg mt-4"></i><br />filter701              </Col>702              <Col xs="6" sm="4" md="3" lg="2">703                <i className="fa fa-fire fa-lg mt-4"></i><br />fire704              </Col>705              <Col xs="6" sm="4" md="3" lg="2">706                <i className="fa fa-fire-extinguisher fa-lg mt-4"></i><br />fire-extinguisher707              </Col>708              <Col xs="6" sm="4" md="3" lg="2">709                <i className="fa fa-flag fa-lg mt-4"></i><br />flag710              </Col>711              <Col xs="6" sm="4" md="3" lg="2">712                <i className="fa fa-flag-checkered fa-lg mt-4"></i><br />flag-checkered713              </Col>714              <Col xs="6" sm="4" md="3" lg="2">715                <i className="fa fa-flag-o fa-lg mt-4"></i><br />flag-o716              </Col>717              <Col xs="6" sm="4" md="3" lg="2">718                <i className="fa fa-flash fa-lg mt-4"></i><br />flash <span className="text-muted">(alias)</span>719              </Col>720              <Col xs="6" sm="4" md="3" lg="2">721                <i className="fa fa-flask fa-lg mt-4"></i><br />flask722              </Col>723              <Col xs="6" sm="4" md="3" lg="2">724                <i className="fa fa-folder fa-lg mt-4"></i><br />folder725              </Col>726              <Col xs="6" sm="4" md="3" lg="2">727                <i className="fa fa-folder-o fa-lg mt-4"></i><br />folder-o728              </Col>729              <Col xs="6" sm="4" md="3" lg="2">730                <i className="fa fa-folder-open fa-lg mt-4"></i><br />folder-open731              </Col>732              <Col xs="6" sm="4" md="3" lg="2">733                <i className="fa fa-folder-open-o fa-lg mt-4"></i><br />folder-open-o734              </Col>735              <Col xs="6" sm="4" md="3" lg="2">736                <i className="fa fa-frown-o fa-lg mt-4"></i><br />frown-o737              </Col>738              <Col xs="6" sm="4" md="3" lg="2">739                <i className="fa fa-futbol-o fa-lg mt-4"></i><br />futbol-o740              </Col>741              <Col xs="6" sm="4" md="3" lg="2">742                <i className="fa fa-gamepad fa-lg mt-4"></i><br />gamepad743              </Col>744              <Col xs="6" sm="4" md="3" lg="2">745                <i className="fa fa-gavel fa-lg mt-4"></i><br />gavel746              </Col>747              <Col xs="6" sm="4" md="3" lg="2">748                <i className="fa fa-gear fa-lg mt-4"></i><br />gear <span className="text-muted">(alias)</span>749              </Col>750              <Col xs="6" sm="4" md="3" lg="2">751                <i className="fa fa-gears fa-lg mt-4"></i><br />gears <span className="text-muted">(alias)</span>752              </Col>753              <Col xs="6" sm="4" md="3" lg="2">754                <i className="fa fa-gift fa-lg mt-4"></i><br />gift755              </Col>756              <Col xs="6" sm="4" md="3" lg="2">757                <i className="fa fa-glass fa-lg mt-4"></i><br />glass758              </Col>759              <Col xs="6" sm="4" md="3" lg="2">760                <i className="fa fa-globe fa-lg mt-4"></i><br />globe761              </Col>762              <Col xs="6" sm="4" md="3" lg="2">763                <i className="fa fa-graduation-cap fa-lg mt-4"></i><br />graduation-cap764              </Col>765              <Col xs="6" sm="4" md="3" lg="2">766                <i className="fa fa-group fa-lg mt-4"></i><br />group <span className="text-muted">(alias)</span>767              </Col>768              <Col xs="6" sm="4" md="3" lg="2">769                <i className="fa fa-hand-grab-o fa-lg mt-4"></i><br />hand-grab-o <span770                className="text-muted">(alias)</span>771              </Col>772              <Col xs="6" sm="4" md="3" lg="2">773                <i className="fa fa-hand-lizard-o fa-lg mt-4"></i><br />hand-lizard-o774              </Col>775              <Col xs="6" sm="4" md="3" lg="2">776                <i className="fa fa-hand-paper-o fa-lg mt-4"></i><br />hand-paper-o777              </Col>778              <Col xs="6" sm="4" md="3" lg="2">779                <i className="fa fa-hand-peace-o fa-lg mt-4"></i><br />hand-peace-o780              </Col>781              <Col xs="6" sm="4" md="3" lg="2">782                <i className="fa fa-hand-pointer-o fa-lg mt-4"></i><br />hand-pointer-o783              </Col>784              <Col xs="6" sm="4" md="3" lg="2">785                <i className="fa fa-hand-rock-o fa-lg mt-4"></i><br />hand-rock-o786              </Col>787              <Col xs="6" sm="4" md="3" lg="2">788                <i className="fa fa-hand-scissors-o fa-lg mt-4"></i><br />hand-scissors-o789              </Col>790              <Col xs="6" sm="4" md="3" lg="2">791                <i className="fa fa-hand-spock-o fa-lg mt-4"></i><br />hand-spock-o792              </Col>793              <Col xs="6" sm="4" md="3" lg="2">794                <i className="fa fa-hand-stop-o fa-lg mt-4"></i><br />hand-stop-o <span795                className="text-muted">(alias)</span>796              </Col>797              <Col xs="6" sm="4" md="3" lg="2">798                <i className="fa fa-hashtag fa-lg mt-4"></i><br />hashtag799              </Col>800              <Col xs="6" sm="4" md="3" lg="2">801                <i className="fa fa-hdd-o fa-lg mt-4"></i><br />hdd-o802              </Col>803              <Col xs="6" sm="4" md="3" lg="2">804                <i className="fa fa-headphones fa-lg mt-4"></i><br />headphones805              </Col>806              <Col xs="6" sm="4" md="3" lg="2">807                <i className="fa fa-heart fa-lg mt-4"></i><br />heart808              </Col>809              <Col xs="6" sm="4" md="3" lg="2">810                <i className="fa fa-heart-o fa-lg mt-4"></i><br />heart-o811              </Col>812              <Col xs="6" sm="4" md="3" lg="2">813                <i className="fa fa-heartbeat fa-lg mt-4"></i><br />heartbeat814              </Col>815              <Col xs="6" sm="4" md="3" lg="2">816                <i className="fa fa-history fa-lg mt-4"></i><br />history817              </Col>818              <Col xs="6" sm="4" md="3" lg="2">819                <i className="fa fa-home fa-lg mt-4"></i><br />home820              </Col>821              <Col xs="6" sm="4" md="3" lg="2">822                <i className="fa fa-hotel fa-lg mt-4"></i><br />hotel <span className="text-muted">(alias)</span>823              </Col>824              <Col xs="6" sm="4" md="3" lg="2">825                <i className="fa fa-hourglass fa-lg mt-4"></i><br />hourglass826              </Col>827              <Col xs="6" sm="4" md="3" lg="2">828                <i className="fa fa-hourglass-1 fa-lg mt-4"></i><br />hourglass-1 <span829                className="text-muted">(alias)</span>830              </Col>831              <Col xs="6" sm="4" md="3" lg="2">832                <i className="fa fa-hourglass-2 fa-lg mt-4"></i><br />hourglass-2 <span833                className="text-muted">(alias)</span>834              </Col>835              <Col xs="6" sm="4" md="3" lg="2">836                <i className="fa fa-hourglass-3 fa-lg mt-4"></i><br />hourglass-3 <span837                className="text-muted">(alias)</span>838              </Col>839              <Col xs="6" sm="4" md="3" lg="2">840                <i className="fa fa-hourglass-end fa-lg mt-4"></i><br />hourglass-end841              </Col>842              <Col xs="6" sm="4" md="3" lg="2">843                <i className="fa fa-hourglass-half fa-lg mt-4"></i><br />hourglass-half844              </Col>845              <Col xs="6" sm="4" md="3" lg="2">846                <i className="fa fa-hourglass-o fa-lg mt-4"></i><br />hourglass-o847              </Col>848              <Col xs="6" sm="4" md="3" lg="2">849                <i className="fa fa-hourglass-start fa-lg mt-4"></i><br />hourglass-start850              </Col>851              <Col xs="6" sm="4" md="3" lg="2">852                <i className="fa fa-i-cursor fa-lg mt-4"></i><br />i-cursor853              </Col>854              <Col xs="6" sm="4" md="3" lg="2">855                <i className="fa fa-image fa-lg mt-4"></i><br />image <span className="text-muted">(alias)</span>856              </Col>857              <Col xs="6" sm="4" md="3" lg="2">858                <i className="fa fa-inbox fa-lg mt-4"></i><br />inbox859              </Col>860              <Col xs="6" sm="4" md="3" lg="2">861                <i className="fa fa-industry fa-lg mt-4"></i><br />industry862              </Col>863              <Col xs="6" sm="4" md="3" lg="2">864                <i className="fa fa-info fa-lg mt-4"></i><br />info865              </Col>866              <Col xs="6" sm="4" md="3" lg="2">867                <i className="fa fa-info-circle fa-lg mt-4"></i><br />info-circle868              </Col>869              <Col xs="6" sm="4" md="3" lg="2">870                <i className="fa fa-institution fa-lg mt-4"></i><br />institution <span871                className="text-muted">(alias)</span>872              </Col>873              <Col xs="6" sm="4" md="3" lg="2">874                <i className="fa fa-key fa-lg mt-4"></i><br />key875              </Col>876              <Col xs="6" sm="4" md="3" lg="2">877                <i className="fa fa-keyboard-o fa-lg mt-4"></i><br />keyboard-o878              </Col>879              <Col xs="6" sm="4" md="3" lg="2">880                <i className="fa fa-language fa-lg mt-4"></i><br />language881              </Col>882              <Col xs="6" sm="4" md="3" lg="2">883                <i className="fa fa-laptop fa-lg mt-4"></i><br />laptop884              </Col>885              <Col xs="6" sm="4" md="3" lg="2">886                <i className="fa fa-leaf fa-lg mt-4"></i><br />leaf887              </Col>888              <Col xs="6" sm="4" md="3" lg="2">889                <i className="fa fa-legal fa-lg mt-4"></i><br />legal <span className="text-muted">(alias)</span>890              </Col>891              <Col xs="6" sm="4" md="3" lg="2">892                <i className="fa fa-lemon-o fa-lg mt-4"></i><br />lemon-o893              </Col>894              <Col xs="6" sm="4" md="3" lg="2">895                <i className="fa fa-level-down fa-lg mt-4"></i><br />level-down896              </Col>897              <Col xs="6" sm="4" md="3" lg="2">898                <i className="fa fa-level-up fa-lg mt-4"></i><br />level-up899              </Col>900              <Col xs="6" sm="4" md="3" lg="2">901                <i className="fa fa-life-bouy fa-lg mt-4"></i><br />life-bouy <span className="text-muted">(alias)</span>902              </Col>903              <Col xs="6" sm="4" md="3" lg="2">904                <i className="fa fa-life-buoy fa-lg mt-4"></i><br />life-buoy <span className="text-muted">(alias)</span>905              </Col>906              <Col xs="6" sm="4" md="3" lg="2">907                <i className="fa fa-life-ring fa-lg mt-4"></i><br />life-ring908              </Col>909              <Col xs="6" sm="4" md="3" lg="2">910                <i className="fa fa-life-saver fa-lg mt-4"></i><br />life-saver <span911                className="text-muted">(alias)</span>912              </Col>913              <Col xs="6" sm="4" md="3" lg="2">914                <i className="fa fa-lightbulb-o fa-lg mt-4"></i><br />lightbulb-o915              </Col>916              <Col xs="6" sm="4" md="3" lg="2">917                <i className="fa fa-line-chart fa-lg mt-4"></i><br />line-chart918              </Col>919              <Col xs="6" sm="4" md="3" lg="2">920                <i className="fa fa-location-arrow fa-lg mt-4"></i><br />location-arrow921              </Col>922              <Col xs="6" sm="4" md="3" lg="2">923                <i className="fa fa-lock fa-lg mt-4"></i><br />lock924              </Col>925              <Col xs="6" sm="4" md="3" lg="2">926                <i className="fa fa-magic fa-lg mt-4"></i><br />magic927              </Col>928              <Col xs="6" sm="4" md="3" lg="2">929                <i className="fa fa-magnet fa-lg mt-4"></i><br />magnet930              </Col>931              <Col xs="6" sm="4" md="3" lg="2">932                <i className="fa fa-mail-forward fa-lg mt-4"></i><br />mail-forward <span933                className="text-muted">(alias)</span>934              </Col>935              <Col xs="6" sm="4" md="3" lg="2">936                <i className="fa fa-mail-reply fa-lg mt-4"></i><br />mail-reply <span937                className="text-muted">(alias)</span>938              </Col>939              <Col xs="6" sm="4" md="3" lg="2">940                <i className="fa fa-mail-reply-all fa-lg mt-4"></i><br />mail-reply-all <span className="text-muted">(alias)</span>941              </Col>942              <Col xs="6" sm="4" md="3" lg="2">943                <i className="fa fa-male fa-lg mt-4"></i><br />male944              </Col>945              <Col xs="6" sm="4" md="3" lg="2">946                <i className="fa fa-map fa-lg mt-4"></i><br />map947              </Col>948              <Col xs="6" sm="4" md="3" lg="2">949                <i className="fa fa-map-marker fa-lg mt-4"></i><br />map-marker950              </Col>951              <Col xs="6" sm="4" md="3" lg="2">952                <i className="fa fa-map-o fa-lg mt-4"></i><br />map-o953              </Col>954              <Col xs="6" sm="4" md="3" lg="2">955                <i className="fa fa-map-pin fa-lg mt-4"></i><br />map-pin956              </Col>957              <Col xs="6" sm="4" md="3" lg="2">958                <i className="fa fa-map-signs fa-lg mt-4"></i><br />map-signs959              </Col>960              <Col xs="6" sm="4" md="3" lg="2">961                <i className="fa fa-meh-o fa-lg mt-4"></i><br />meh-o962              </Col>963              <Col xs="6" sm="4" md="3" lg="2">964                <i className="fa fa-microphone fa-lg mt-4"></i><br />microphone965              </Col>966              <Col xs="6" sm="4" md="3" lg="2">967                <i className="fa fa-microphone-slash fa-lg mt-4"></i><br />microphone-slash968              </Col>969              <Col xs="6" sm="4" md="3" lg="2">970                <i className="fa fa-minus fa-lg mt-4"></i><br />minus971              </Col>972              <Col xs="6" sm="4" md="3" lg="2">973                <i className="fa fa-minus-circle fa-lg mt-4"></i><br />minus-circle974              </Col>975              <Col xs="6" sm="4" md="3" lg="2">976                <i className="fa fa-minus-square fa-lg mt-4"></i><br />minus-square977              </Col>978              <Col xs="6" sm="4" md="3" lg="2">979                <i className="fa fa-minus-square-o fa-lg mt-4"></i><br />minus-square-o980              </Col>981              <Col xs="6" sm="4" md="3" lg="2">982                <i className="fa fa-mobile fa-lg mt-4"></i><br />mobile983              </Col>984              <Col xs="6" sm="4" md="3" lg="2">985                <i className="fa fa-mobile-phone fa-lg mt-4"></i><br />mobile-phone <span986                className="text-muted">(alias)</span>987              </Col>988              <Col xs="6" sm="4" md="3" lg="2">989                <i className="fa fa-money fa-lg mt-4"></i><br />money990              </Col>991              <Col xs="6" sm="4" md="3" lg="2">992                <i className="fa fa-moon-o fa-lg mt-4"></i><br />moon-o993              </Col>994              <Col xs="6" sm="4" md="3" lg="2">995                <i className="fa fa-mortar-board fa-lg mt-4"></i><br />mortar-board <span996                className="text-muted">(alias)</span>997              </Col>998              <Col xs="6" sm="4" md="3" lg="2">999                <i className="fa fa-motorcycle fa-lg mt-4"></i><br />motorcycle1000              </Col>1001              <Col xs="6" sm="4" md="3" lg="2">1002                <i className="fa fa-mouse-pointer fa-lg mt-4"></i><br />mouse-pointer1003              </Col>1004              <Col xs="6" sm="4" md="3" lg="2">1005                <i className="fa fa-music fa-lg mt-4"></i><br />music1006              </Col>1007              <Col xs="6" sm="4" md="3" lg="2">1008                <i className="fa fa-navicon fa-lg mt-4"></i><br />navicon <span className="text-muted">(alias)</span>1009              </Col>1010              <Col xs="6" sm="4" md="3" lg="2">1011                <i className="fa fa-newspaper-o fa-lg mt-4"></i><br />newspaper-o1012              </Col>1013              <Col xs="6" sm="4" md="3" lg="2">1014                <i className="fa fa-object-group fa-lg mt-4"></i><br />object-group1015              </Col>1016              <Col xs="6" sm="4" md="3" lg="2">1017                <i className="fa fa-object-ungroup fa-lg mt-4"></i><br />object-ungroup1018              </Col>1019              <Col xs="6" sm="4" md="3" lg="2">1020                <i className="fa fa-paint-brush fa-lg mt-4"></i><br />paint-brush1021              </Col>1022              <Col xs="6" sm="4" md="3" lg="2">1023                <i className="fa fa-paper-plane fa-lg mt-4"></i><br />paper-plane1024              </Col>1025              <Col xs="6" sm="4" md="3" lg="2">1026                <i className="fa fa-paper-plane-o fa-lg mt-4"></i><br />paper-plane-o1027              </Col>1028              <Col xs="6" sm="4" md="3" lg="2">1029                <i className="fa fa-paw fa-lg mt-4"></i><br />paw1030              </Col>1031              <Col xs="6" sm="4" md="3" lg="2">1032                <i className="fa fa-pencil fa-lg mt-4"></i><br />pencil1033              </Col>1034              <Col xs="6" sm="4" md="3" lg="2">1035                <i className="fa fa-pencil-square fa-lg mt-4"></i><br />pencil-square1036              </Col>1037              <Col xs="6" sm="4" md="3" lg="2">1038                <i className="fa fa-pencil-square-o fa-lg mt-4"></i><br />pencil-square-o1039              </Col>1040              <Col xs="6" sm="4" md="3" lg="2">1041                <i className="fa fa-percent fa-lg mt-4"></i><br />percent1042              </Col>1043              <Col xs="6" sm="4" md="3" lg="2">1044                <i className="fa fa-phone fa-lg mt-4"></i><br />phone1045              </Col>1046              <Col xs="6" sm="4" md="3" lg="2">1047                <i className="fa fa-phone-square fa-lg mt-4"></i><br />phone-square1048              </Col>1049              <Col xs="6" sm="4" md="3" lg="2">1050                <i className="fa fa-photo fa-lg mt-4"></i><br />photo <span className="text-muted">(alias)</span>1051              </Col>1052              <Col xs="6" sm="4" md="3" lg="2">1053                <i className="fa fa-picture-o fa-lg mt-4"></i><br />picture-o1054              </Col>1055              <Col xs="6" sm="4" md="3" lg="2">1056                <i className="fa fa-pie-chart fa-lg mt-4"></i><br />pie-chart1057              </Col>1058              <Col xs="6" sm="4" md="3" lg="2">1059                <i className="fa fa-plane fa-lg mt-4"></i><br />plane1060              </Col>1061              <Col xs="6" sm="4" md="3" lg="2">1062                <i className="fa fa-plug fa-lg mt-4"></i><br />plug1063              </Col>1064              <Col xs="6" sm="4" md="3" lg="2">1065                <i className="fa fa-plus fa-lg mt-4"></i><br />plus1066              </Col>1067              <Col xs="6" sm="4" md="3" lg="2">1068                <i className="fa fa-plus-circle fa-lg mt-4"></i><br />plus-circle1069              </Col>1070              <Col xs="6" sm="4" md="3" lg="2">1071                <i className="fa fa-plus-square fa-lg mt-4"></i><br />plus-square1072              </Col>1073              <Col xs="6" sm="4" md="3" lg="2">1074                <i className="fa fa-plus-square-o fa-lg mt-4"></i><br />plus-square-o1075              </Col>1076              <Col xs="6" sm="4" md="3" lg="2">1077                <i className="fa fa-power-off fa-lg mt-4"></i><br />power-off1078              </Col>1079              <Col xs="6" sm="4" md="3" lg="2">1080                <i className="fa fa-print fa-lg mt-4"></i><br />print1081              </Col>1082              <Col xs="6" sm="4" md="3" lg="2">1083                <i className="fa fa-puzzle-piece fa-lg mt-4"></i><br />puzzle-piece1084              </Col>1085              <Col xs="6" sm="4" md="3" lg="2">1086                <i className="fa fa-qrcode fa-lg mt-4"></i><br />qrcode1087              </Col>1088              <Col xs="6" sm="4" md="3" lg="2">1089                <i className="fa fa-question fa-lg mt-4"></i><br />question1090              </Col>1091              <Col xs="6" sm="4" md="3" lg="2">1092                <i className="fa fa-question-circle fa-lg mt-4"></i><br />question-circle1093              </Col>1094              <Col xs="6" sm="4" md="3" lg="2">1095                <i className="fa fa-quote-left fa-lg mt-4"></i><br />quote-left1096              </Col>1097              <Col xs="6" sm="4" md="3" lg="2">1098                <i className="fa fa-quote-right fa-lg mt-4"></i><br />quote-right1099              </Col>1100              <Col xs="6" sm="4" md="3" lg="2">1101                <i className="fa fa-random fa-lg mt-4"></i><br />random1102              </Col>1103              <Col xs="6" sm="4" md="3" lg="2">1104                <i className="fa fa-recycle fa-lg mt-4"></i><br />recycle1105              </Col>1106              <Col xs="6" sm="4" md="3" lg="2">1107                <i className="fa fa-refresh fa-lg mt-4"></i><br />refresh1108              </Col>1109              <Col xs="6" sm="4" md="3" lg="2">1110                <i className="fa fa-registered fa-lg mt-4"></i><br />registered1111              </Col>1112              <Col xs="6" sm="4" md="3" lg="2">1113                <i className="fa fa-remove fa-lg mt-4"></i><br />remove <span className="text-muted">(alias)</span>1114              </Col>1115              <Col xs="6" sm="4" md="3" lg="2">1116                <i className="fa fa-reorder fa-lg mt-4"></i><br />reorder <span className="text-muted">(alias)</span>1117              </Col>1118              <Col xs="6" sm="4" md="3" lg="2">1119                <i className="fa fa-reply fa-lg mt-4"></i><br />reply1120              </Col>1121              <Col xs="6" sm="4" md="3" lg="2">1122                <i className="fa fa-reply-all fa-lg mt-4"></i><br />reply-all1123              </Col>1124              <Col xs="6" sm="4" md="3" lg="2">1125                <i className="fa fa-retweet fa-lg mt-4"></i><br />retweet1126              </Col>1127              <Col xs="6" sm="4" md="3" lg="2">1128                <i className="fa fa-road fa-lg mt-4"></i><br />road1129              </Col>1130              <Col xs="6" sm="4" md="3" lg="2">1131                <i className="fa fa-rocket fa-lg mt-4"></i><br />rocket1132              </Col>1133              <Col xs="6" sm="4" md="3" lg="2">1134                <i className="fa fa-rss fa-lg mt-4"></i><br />rss1135              </Col>1136              <Col xs="6" sm="4" md="3" lg="2">1137                <i className="fa fa-rss-square fa-lg mt-4"></i><br />rss-square1138              </Col>1139              <Col xs="6" sm="4" md="3" lg="2">1140                <i className="fa fa-search fa-lg mt-4"></i><br />search1141              </Col>1142              <Col xs="6" sm="4" md="3" lg="2">1143                <i className="fa fa-search-minus fa-lg mt-4"></i><br />search-minus1144              </Col>1145              <Col xs="6" sm="4" md="3" lg="2">1146                <i className="fa fa-search-plus fa-lg mt-4"></i><br />search-plus1147              </Col>1148              <Col xs="6" sm="4" md="3" lg="2">1149                <i className="fa fa-send fa-lg mt-4"></i><br />send <span className="text-muted">(alias)</span>1150              </Col>1151              <Col xs="6" sm="4" md="3" lg="2">1152                <i className="fa fa-send-o fa-lg mt-4"></i><br />send-o <span className="text-muted">(alias)</span>1153              </Col>1154              <Col xs="6" sm="4" md="3" lg="2">1155                <i className="fa fa-server fa-lg mt-4"></i><br />server1156              </Col>1157              <Col xs="6" sm="4" md="3" lg="2">1158                <i className="fa fa-share fa-lg mt-4"></i><br />share1159              </Col>1160              <Col xs="6" sm="4" md="3" lg="2">1161                <i className="fa fa-share-alt fa-lg mt-4"></i><br />share-alt1162              </Col>1163              <Col xs="6" sm="4" md="3" lg="2">1164                <i className="fa fa-share-alt-square fa-lg mt-4"></i><br />share-alt-square1165              </Col>1166              <Col xs="6" sm="4" md="3" lg="2">1167                <i className="fa fa-share-square fa-lg mt-4"></i><br />share-square1168              </Col>1169              <Col xs="6" sm="4" md="3" lg="2">1170                <i className="fa fa-share-square-o fa-lg mt-4"></i><br />share-square-o1171              </Col>1172              <Col xs="6" sm="4" md="3" lg="2">1173                <i className="fa fa-shield fa-lg mt-4"></i><br />shield1174              </Col>1175              <Col xs="6" sm="4" md="3" lg="2">1176                <i className="fa fa-ship fa-lg mt-4"></i><br />ship1177              </Col>1178              <Col xs="6" sm="4" md="3" lg="2">1179                <i className="fa fa-shopping-bag fa-lg mt-4"></i><br />shopping-bag1180              </Col>1181              <Col xs="6" sm="4" md="3" lg="2">1182                <i className="fa fa-shopping-basket fa-lg mt-4"></i><br />shopping-basket1183              </Col>1184              <Col xs="6" sm="4" md="3" lg="2">1185                <i className="fa fa-shopping-cart fa-lg mt-4"></i><br />shopping-cart1186              </Col>1187              <Col xs="6" sm="4" md="3" lg="2">1188                <i className="fa fa-sign-in fa-lg mt-4"></i><br />sign-in1189              </Col>1190              <Col xs="6" sm="4" md="3" lg="2">1191                <i className="fa fa-sign-out fa-lg mt-4"></i><br />sign-out1192              </Col>1193              <Col xs="6" sm="4" md="3" lg="2">1194                <i className="fa fa-signal fa-lg mt-4"></i><br />signal1195              </Col>1196              <Col xs="6" sm="4" md="3" lg="2">1197                <i className="fa fa-sitemap fa-lg mt-4"></i><br />sitemap1198              </Col>1199              <Col xs="6" sm="4" md="3" lg="2">1200                <i className="fa fa-sliders fa-lg mt-4"></i><br />sliders1201              </Col>1202              <Col xs="6" sm="4" md="3" lg="2">1203                <i className="fa fa-smile-o fa-lg mt-4"></i><br />smile-o1204              </Col>1205              <Col xs="6" sm="4" md="3" lg="2">1206                <i className="fa fa-soccer-ball-o fa-lg mt-4"></i><br />soccer-ball-o <span className="text-muted">(alias)</span>1207              </Col>1208              <Col xs="6" sm="4" md="3" lg="2">1209                <i className="fa fa-sort fa-lg mt-4"></i><br />sort1210              </Col>1211              <Col xs="6" sm="4" md="3" lg="2">1212                <i className="fa fa-sort-alpha-asc fa-lg mt-4"></i><br />sort-alpha-asc1213              </Col>1214              <Col xs="6" sm="4" md="3" lg="2">1215                <i className="fa fa-sort-alpha-desc fa-lg mt-4"></i><br />sort-alpha-desc1216              </Col>1217              <Col xs="6" sm="4" md="3" lg="2">1218                <i className="fa fa-sort-amount-asc fa-lg mt-4"></i><br />sort-amount-asc1219              </Col>1220              <Col xs="6" sm="4" md="3" lg="2">1221                <i className="fa fa-sort-amount-desc fa-lg mt-4"></i><br />sort-amount-desc1222              </Col>1223              <Col xs="6" sm="4" md="3" lg="2">1224                <i className="fa fa-sort-asc fa-lg mt-4"></i><br />sort-asc1225              </Col>1226              <Col xs="6" sm="4" md="3" lg="2">1227                <i className="fa fa-sort-desc fa-lg mt-4"></i><br />sort-desc1228              </Col>1229              <Col xs="6" sm="4" md="3" lg="2">1230                <i className="fa fa-sort-down fa-lg mt-4"></i><br />sort-down <span className="text-muted">(alias)</span>1231              </Col>1232              <Col xs="6" sm="4" md="3" lg="2">1233                <i className="fa fa-sort-numeric-asc fa-lg mt-4"></i><br />sort-numeric-asc1234              </Col>1235              <Col xs="6" sm="4" md="3" lg="2">1236                <i className="fa fa-sort-numeric-desc fa-lg mt-4"></i><br />sort-numeric-desc1237              </Col>1238              <Col xs="6" sm="4" md="3" lg="2">1239                <i className="fa fa-sort-up fa-lg mt-4"></i><br />sort-up <span className="text-muted">(alias)</span>1240              </Col>1241              <Col xs="6" sm="4" md="3" lg="2">1242                <i className="fa fa-space-shuttle fa-lg mt-4"></i><br />space-shuttle1243              </Col>1244              <Col xs="6" sm="4" md="3" lg="2">1245                <i className="fa fa-spinner fa-lg mt-4"></i><br />spinner1246              </Col>1247              <Col xs="6" sm="4" md="3" lg="2">1248                <i className="fa fa-spoon fa-lg mt-4"></i><br />spoon1249              </Col>1250              <Col xs="6" sm="4" md="3" lg="2">1251                <i className="fa fa-square fa-lg mt-4"></i><br />square1252              </Col>1253              <Col xs="6" sm="4" md="3" lg="2">1254                <i className="fa fa-square-o fa-lg mt-4"></i><br />square-o1255              </Col>1256              <Col xs="6" sm="4" md="3" lg="2">1257                <i className="fa fa-star fa-lg mt-4"></i><br />star1258              </Col>1259              <Col xs="6" sm="4" md="3" lg="2">1260                <i className="fa fa-star-half fa-lg mt-4"></i><br />star-half1261              </Col>1262              <Col xs="6" sm="4" md="3" lg="2">1263                <i className="fa fa-star-half-empty fa-lg mt-4"></i><br />star-half-empty <span className="text-muted">(alias)</span>1264              </Col>1265              <Col xs="6" sm="4" md="3" lg="2">1266                <i className="fa fa-star-half-full fa-lg mt-4"></i><br />star-half-full <span className="text-muted">(alias)</span>1267              </Col>1268              <Col xs="6" sm="4" md="3" lg="2">1269                <i className="fa fa-star-half-o fa-lg mt-4"></i><br />star-half-o1270              </Col>1271              <Col xs="6" sm="4" md="3" lg="2">1272                <i className="fa fa-star-o fa-lg mt-4"></i><br />star-o1273              </Col>1274              <Col xs="6" sm="4" md="3" lg="2">1275                <i className="fa fa-sticky-note fa-lg mt-4"></i><br />sticky-note1276              </Col>1277              <Col xs="6" sm="4" md="3" lg="2">1278                <i className="fa fa-sticky-note-o fa-lg mt-4"></i><br />sticky-note-o1279              </Col>1280              <Col xs="6" sm="4" md="3" lg="2">1281                <i className="fa fa-street-view fa-lg mt-4"></i><br />street-view1282              </Col>1283              <Col xs="6" sm="4" md="3" lg="2">1284                <i className="fa fa-suitcase fa-lg mt-4"></i><br />suitcase1285              </Col>1286              <Col xs="6" sm="4" md="3" lg="2">1287                <i className="fa fa-sun-o fa-lg mt-4"></i><br />sun-o1288              </Col>1289              <Col xs="6" sm="4" md="3" lg="2">1290                <i className="fa fa-support fa-lg mt-4"></i><br />support <span className="text-muted">(alias)</span>1291              </Col>1292              <Col xs="6" sm="4" md="3" lg="2">1293                <i className="fa fa-tablet fa-lg mt-4"></i><br />tablet1294              </Col>1295              <Col xs="6" sm="4" md="3" lg="2">1296                <i className="fa fa-tachometer fa-lg mt-4"></i><br />tachometer1297              </Col>1298              <Col xs="6" sm="4" md="3" lg="2">1299                <i className="fa fa-tag fa-lg mt-4"></i><br />tag1300              </Col>1301              <Col xs="6" sm="4" md="3" lg="2">1302                <i className="fa fa-tags fa-lg mt-4"></i><br />tags1303              </Col>1304              <Col xs="6" sm="4" md="3" lg="2">1305                <i className="fa fa-tasks fa-lg mt-4"></i><br />tasks1306              </Col>1307              <Col xs="6" sm="4" md="3" lg="2">1308                <i className="fa fa-taxi fa-lg mt-4"></i><br />taxi1309              </Col>1310              <Col xs="6" sm="4" md="3" lg="2">1311                <i className="fa fa-television fa-lg mt-4"></i><br />television1312              </Col>1313              <Col xs="6" sm="4" md="3" lg="2">1314                <i className="fa fa-terminal fa-lg mt-4"></i><br />terminal1315              </Col>1316              <Col xs="6" sm="4" md="3" lg="2">1317                <i className="fa fa-thumb-tack fa-lg mt-4"></i><br />thumb-tack1318              </Col>1319              <Col xs="6" sm="4" md="3" lg="2">1320                <i className="fa fa-thumbs-down fa-lg mt-4"></i><br />thumbs-down1321              </Col>1322              <Col xs="6" sm="4" md="3" lg="2">1323                <i className="fa fa-thumbs-o-down fa-lg mt-4"></i><br />thumbs-o-down1324              </Col>1325              <Col xs="6" sm="4" md="3" lg="2">1326                <i className="fa fa-thumbs-o-up fa-lg mt-4"></i><br />thumbs-o-up1327              </Col>1328              <Col xs="6" sm="4" md="3" lg="2">1329                <i className="fa fa-thumbs-up fa-lg mt-4"></i><br />thumbs-up1330              </Col>1331              <Col xs="6" sm="4" md="3" lg="2">1332                <i className="fa fa-ticket fa-lg mt-4"></i><br />ticket1333              </Col>1334              <Col xs="6" sm="4" md="3" lg="2">1335                <i className="fa fa-times fa-lg mt-4"></i><br />times1336              </Col>1337              <Col xs="6" sm="4" md="3" lg="2">1338                <i className="fa fa-times-circle fa-lg mt-4"></i><br />times-circle1339              </Col>1340              <Col xs="6" sm="4" md="3" lg="2">1341                <i className="fa fa-times-circle-o fa-lg mt-4"></i><br />times-circle-o1342              </Col>1343              <Col xs="6" sm="4" md="3" lg="2">1344                <i className="fa fa-tint fa-lg mt-4"></i><br />tint1345              </Col>1346              <Col xs="6" sm="4" md="3" lg="2">1347                <i className="fa fa-toggle-down fa-lg mt-4"></i><br />toggle-down <span1348                className="text-muted">(alias)</span>1349              </Col>1350              <Col xs="6" sm="4" md="3" lg="2">1351                <i className="fa fa-toggle-left fa-lg mt-4"></i><br />toggle-left <span1352                className="text-muted">(alias)</span>1353              </Col>1354              <Col xs="6" sm="4" md="3" lg="2">1355                <i className="fa fa-toggle-off fa-lg mt-4"></i><br />toggle-off1356              </Col>1357              <Col xs="6" sm="4" md="3" lg="2">1358                <i className="fa fa-toggle-on fa-lg mt-4"></i><br />toggle-on1359              </Col>1360              <Col xs="6" sm="4" md="3" lg="2">1361                <i className="fa fa-toggle-right fa-lg mt-4"></i><br />toggle-right <span1362                className="text-muted">(alias)</span>1363              </Col>1364              <Col xs="6" sm="4" md="3" lg="2">1365                <i className="fa fa-toggle-up fa-lg mt-4"></i><br />toggle-up <span className="text-muted">(alias)</span>1366              </Col>1367              <Col xs="6" sm="4" md="3" lg="2">1368                <i className="fa fa-trademark fa-lg mt-4"></i><br />trademark1369              </Col>1370              <Col xs="6" sm="4" md="3" lg="2">1371                <i className="fa fa-trash fa-lg mt-4"></i><br />trash1372              </Col>1373              <Col xs="6" sm="4" md="3" lg="2">1374                <i className="fa fa-trash-o fa-lg mt-4"></i><br />trash-o1375              </Col>1376              <Col xs="6" sm="4" md="3" lg="2">1377                <i className="fa fa-tree fa-lg mt-4"></i><br />tree1378              </Col>1379              <Col xs="6" sm="4" md="3" lg="2">1380                <i className="fa fa-trophy fa-lg mt-4"></i><br />trophy1381              </Col>1382              <Col xs="6" sm="4" md="3" lg="2">1383                <i className="fa fa-truck fa-lg mt-4"></i><br />truck1384              </Col>1385              <Col xs="6" sm="4" md="3" lg="2">1386                <i className="fa fa-tty fa-lg mt-4"></i><br />tty1387              </Col>1388              <Col xs="6" sm="4" md="3" lg="2">1389                <i className="fa fa-tv fa-lg mt-4"></i><br />tv <span className="text-muted">(alias)</span>1390              </Col>1391              <Col xs="6" sm="4" md="3" lg="2">1392                <i className="fa fa-umbrella fa-lg mt-4"></i><br />umbrella1393              </Col>1394              <Col xs="6" sm="4" md="3" lg="2">1395                <i className="fa fa-university fa-lg mt-4"></i><br />university1396              </Col>1397              <Col xs="6" sm="4" md="3" lg="2">1398                <i className="fa fa-unlock fa-lg mt-4"></i><br />unlock1399              </Col>1400              <Col xs="6" sm="4" md="3" lg="2">1401                <i className="fa fa-unlock-alt fa-lg mt-4"></i><br />unlock-alt1402              </Col>1403              <Col xs="6" sm="4" md="3" lg="2">1404                <i className="fa fa-unsorted fa-lg mt-4"></i><br />unsorted <span className="text-muted">(alias)</span>1405              </Col>1406              <Col xs="6" sm="4" md="3" lg="2">1407                <i className="fa fa-upload fa-lg mt-4"></i><br />upload1408              </Col>1409              <Col xs="6" sm="4" md="3" lg="2">1410                <i className="fa fa-user fa-lg mt-4"></i><br />user1411              </Col>1412              <Col xs="6" sm="4" md="3" lg="2">1413                <i className="fa fa-user-plus fa-lg mt-4"></i><br />user-plus1414              </Col>1415              <Col xs="6" sm="4" md="3" lg="2">1416                <i className="fa fa-user-secret fa-lg mt-4"></i><br />user-secret1417              </Col>1418              <Col xs="6" sm="4" md="3" lg="2">1419                <i className="fa fa-user-times fa-lg mt-4"></i><br />user-times1420              </Col>1421              <Col xs="6" sm="4" md="3" lg="2">1422                <i className="fa fa-users fa-lg mt-4"></i><br />users1423              </Col>1424              <Col xs="6" sm="4" md="3" lg="2">1425                <i className="fa fa-video-camera fa-lg mt-4"></i><br />video-camera1426              </Col>1427              <Col xs="6" sm="4" md="3" lg="2">1428                <i className="fa fa-volume-down fa-lg mt-4"></i><br />volume-down1429              </Col>1430              <Col xs="6" sm="4" md="3" lg="2">1431                <i className="fa fa-volume-off fa-lg mt-4"></i><br />volume-off1432              </Col>1433              <Col xs="6" sm="4" md="3" lg="2">1434                <i className="fa fa-volume-up fa-lg mt-4"></i><br />volume-up1435              </Col>1436              <Col xs="6" sm="4" md="3" lg="2">1437                <i className="fa fa-warning fa-lg mt-4"></i><br />warning <span className="text-muted">(alias)</span>1438              </Col>1439              <Col xs="6" sm="4" md="3" lg="2">1440                <i className="fa fa-wheelchair fa-lg mt-4"></i><br />wheelchair1441              </Col>1442              <Col xs="6" sm="4" md="3" lg="2">1443                <i className="fa fa-wifi fa-lg mt-4"></i><br />wifi1444              </Col>1445              <Col xs="6" sm="4" md="3" lg="2">1446                <i className="fa fa-wrench fa-lg mt-4"></i><br />wrench1447              </Col>1448            </Row>1449          </CardBody>1450        </Card>1451        <Card id="hand">1452          <CardHeader>Hand Icons</CardHeader>1453          <CardBody>1454            <Row className="text-center">1455              <Col xs="6" sm="4" md="3" lg="2">1456                <i className="fa fa-hand-grab-o fa-lg mt-4"></i><br />hand-grab-o <span1457                className="text-muted">(alias)</span>1458              </Col>1459              <Col xs="6" sm="4" md="3" lg="2">1460                <i className="fa fa-hand-lizard-o fa-lg mt-4"></i><br />hand-lizard-o1461              </Col>1462              <Col xs="6" sm="4" md="3" lg="2">1463                <i className="fa fa-hand-o-down fa-lg mt-4"></i><br />hand-o-down1464              </Col>1465              <Col xs="6" sm="4" md="3" lg="2">1466                <i className="fa fa-hand-o-left fa-lg mt-4"></i><br />hand-o-left1467              </Col>1468              <Col xs="6" sm="4" md="3" lg="2">1469                <i className="fa fa-hand-o-right fa-lg mt-4"></i><br />hand-o-right1470              </Col>1471              <Col xs="6" sm="4" md="3" lg="2">1472                <i className="fa fa-hand-o-up fa-lg mt-4"></i><br />hand-o-up1473              </Col>1474              <Col xs="6" sm="4" md="3" lg="2">1475                <i className="fa fa-hand-paper-o fa-lg mt-4"></i><br />hand-paper-o1476              </Col>1477              <Col xs="6" sm="4" md="3" lg="2">1478                <i className="fa fa-hand-peace-o fa-lg mt-4"></i><br />hand-peace-o1479              </Col>1480              <Col xs="6" sm="4" md="3" lg="2">1481                <i className="fa fa-hand-pointer-o fa-lg mt-4"></i><br />hand-pointer-o1482              </Col>1483              <Col xs="6" sm="4" md="3" lg="2">1484                <i className="fa fa-hand-rock-o fa-lg mt-4"></i><br />hand-rock-o1485              </Col>1486              <Col xs="6" sm="4" md="3" lg="2">1487                <i className="fa fa-hand-scissors-o fa-lg mt-4"></i><br />hand-scissors-o1488              </Col>1489              <Col xs="6" sm="4" md="3" lg="2">1490                <i className="fa fa-hand-spock-o fa-lg mt-4"></i><br />hand-spock-o1491              </Col>1492              <Col xs="6" sm="4" md="3" lg="2">1493                <i className="fa fa-hand-stop-o fa-lg mt-4"></i><br />hand-stop-o <span1494                className="text-muted">(alias)</span>1495              </Col>1496              <Col xs="6" sm="4" md="3" lg="2">1497                <i className="fa fa-thumbs-down fa-lg mt-4"></i><br />thumbs-down1498              </Col>1499              <Col xs="6" sm="4" md="3" lg="2">1500                <i className="fa fa-thumbs-o-down fa-lg mt-4"></i><br />thumbs-o-down1501              </Col>1502              <Col xs="6" sm="4" md="3" lg="2">1503                <i className="fa fa-thumbs-o-up fa-lg mt-4"></i><br />thumbs-o-up1504              </Col>1505              <Col xs="6" sm="4" md="3" lg="2">1506                <i className="fa fa-thumbs-up fa-lg mt-4"></i><br />thumbs-up1507              </Col>1508            </Row>1509          </CardBody>1510        </Card>1511        <Card id="transportation">1512          <CardHeader>Transportation Icons</CardHeader>1513          <CardBody>1514            <Row className="text-center">1515              <Col xs="6" sm="4" md="3" lg="2">1516                <i className="fa fa-ambulance fa-lg mt-4"></i><br />ambulance1517              </Col>1518              <Col xs="6" sm="4" md="3" lg="2">1519                <i className="fa fa-automobile fa-lg mt-4"></i><br />automobile <span1520                className="text-muted">(alias)</span>1521              </Col>1522              <Col xs="6" sm="4" md="3" lg="2">1523                <i className="fa fa-bicycle fa-lg mt-4"></i><br />bicycle1524              </Col>1525              <Col xs="6" sm="4" md="3" lg="2">1526                <i className="fa fa-bus fa-lg mt-4"></i><br />bus1527              </Col>1528              <Col xs="6" sm="4" md="3" lg="2">1529                <i className="fa fa-cab fa-lg mt-4"></i><br />cab <span className="text-muted">(alias)</span>1530              </Col>1531              <Col xs="6" sm="4" md="3" lg="2">1532                <i className="fa fa-car fa-lg mt-4"></i><br />car1533              </Col>1534              <Col xs="6" sm="4" md="3" lg="2">1535                <i className="fa fa-fighter-jet fa-lg mt-4"></i><br />fighter-jet1536              </Col>1537              <Col xs="6" sm="4" md="3" lg="2">1538                <i className="fa fa-motorcycle fa-lg mt-4"></i><br />motorcycle1539              </Col>1540              <Col xs="6" sm="4" md="3" lg="2">1541                <i className="fa fa-plane fa-lg mt-4"></i><br />plane1542              </Col>1543              <Col xs="6" sm="4" md="3" lg="2">1544                <i className="fa fa-rocket fa-lg mt-4"></i><br />rocket1545              </Col>1546              <Col xs="6" sm="4" md="3" lg="2">1547                <i className="fa fa-ship fa-lg mt-4"></i><br />ship1548              </Col>1549              <Col xs="6" sm="4" md="3" lg="2">1550                <i className="fa fa-space-shuttle fa-lg mt-4"></i><br />space-shuttle1551              </Col>1552              <Col xs="6" sm="4" md="3" lg="2">1553                <i className="fa fa-subway fa-lg mt-4"></i><br />subway1554              </Col>1555              <Col xs="6" sm="4" md="3" lg="2">1556                <i className="fa fa-taxi fa-lg mt-4"></i><br />taxi1557              </Col>1558              <Col xs="6" sm="4" md="3" lg="2">1559                <i className="fa fa-train fa-lg mt-4"></i><br />train1560              </Col>1561              <Col xs="6" sm="4" md="3" lg="2">1562                <i className="fa fa-truck fa-lg mt-4"></i><br />truck1563              </Col>1564              <Col xs="6" sm="4" md="3" lg="2">1565                <i className="fa fa-wheelchair fa-lg mt-4"></i><br />wheelchair1566              </Col>1567            </Row>1568          </CardBody>1569        </Card>1570        <Card id="gender">1571          <CardHeader>Gender Icons</CardHeader>1572          <CardBody>1573            <Row className="text-center">1574              <Col xs="6" sm="4" md="3" lg="2">1575                <i className="fa fa-genderless fa-lg mt-4"></i><br />genderless1576              </Col>1577              <Col xs="6" sm="4" md="3" lg="2">1578                <i className="fa fa-intersex fa-lg mt-4"></i><br />intersex <span className="text-muted">(alias)</span>1579              </Col>1580              <Col xs="6" sm="4" md="3" lg="2">1581                <i className="fa fa-mars fa-lg mt-4"></i><br />mars1582              </Col>1583              <Col xs="6" sm="4" md="3" lg="2">1584                <i className="fa fa-mars-double fa-lg mt-4"></i><br />mars-double1585              </Col>1586              <Col xs="6" sm="4" md="3" lg="2">1587                <i className="fa fa-mars-stroke fa-lg mt-4"></i><br />mars-stroke1588              </Col>1589              <Col xs="6" sm="4" md="3" lg="2">1590                <i className="fa fa-mars-stroke-h fa-lg mt-4"></i><br />mars-stroke-h1591              </Col>1592              <Col xs="6" sm="4" md="3" lg="2">1593                <i className="fa fa-mars-stroke-v fa-lg mt-4"></i><br />mars-stroke-v1594              </Col>1595              <Col xs="6" sm="4" md="3" lg="2">1596                <i className="fa fa-mercury fa-lg mt-4"></i><br />mercury1597              </Col>1598              <Col xs="6" sm="4" md="3" lg="2">1599                <i className="fa fa-neuter fa-lg mt-4"></i><br />neuter1600              </Col>1601              <Col xs="6" sm="4" md="3" lg="2">1602                <i className="fa fa-transgender fa-lg mt-4"></i><br />transgender1603              </Col>1604              <Col xs="6" sm="4" md="3" lg="2">1605                <i className="fa fa-transgender-alt fa-lg mt-4"></i><br />transgender-alt1606              </Col>1607              <Col xs="6" sm="4" md="3" lg="2">1608                <i className="fa fa-venus fa-lg mt-4"></i><br />venus1609              </Col>1610              <Col xs="6" sm="4" md="3" lg="2">1611                <i className="fa fa-venus-double fa-lg mt-4"></i><br />venus-double1612              </Col>1613              <Col xs="6" sm="4" md="3" lg="2">1614                <i className="fa fa-venus-mars fa-lg mt-4"></i><br />venus-mars1615              </Col>1616            </Row>1617          </CardBody>1618        </Card>1619        <Card id="file-type">1620          <CardHeader>File Type Icons</CardHeader>1621          <CardBody>1622            <Row className="text-center">1623              <Col xs="6" sm="4" md="3" lg="2">1624                <i className="fa fa-file fa-lg mt-4"></i><br />file1625              </Col>1626              <Col xs="6" sm="4" md="3" lg="2">1627                <i className="fa fa-file-archive-o fa-lg mt-4"></i><br />file-archive-o1628              </Col>1629              <Col xs="6" sm="4" md="3" lg="2">1630                <i className="fa fa-file-audio-o fa-lg mt-4"></i><br />file-audio-o1631              </Col>1632              <Col xs="6" sm="4" md="3" lg="2">1633                <i className="fa fa-file-code-o fa-lg mt-4"></i><br />file-code-o1634              </Col>1635              <Col xs="6" sm="4" md="3" lg="2">1636                <i className="fa fa-file-excel-o fa-lg mt-4"></i><br />file-excel-o1637              </Col>1638              <Col xs="6" sm="4" md="3" lg="2">1639                <i className="fa fa-file-image-o fa-lg mt-4"></i><br />file-image-o1640              </Col>1641              <Col xs="6" sm="4" md="3" lg="2">1642                <i className="fa fa-file-movie-o fa-lg mt-4"></i><br />file-movie-o <span1643                className="text-muted">(alias)</span>1644              </Col>1645              <Col xs="6" sm="4" md="3" lg="2">1646                <i className="fa fa-file-o fa-lg mt-4"></i><br />file-o1647              </Col>1648              <Col xs="6" sm="4" md="3" lg="2">1649                <i className="fa fa-file-pdf-o fa-lg mt-4"></i><br />file-pdf-o1650              </Col>1651              <Col xs="6" sm="4" md="3" lg="2">1652                <i className="fa fa-file-photo-o fa-lg mt-4"></i><br />file-photo-o <span1653                className="text-muted">(alias)</span>1654              </Col>1655              <Col xs="6" sm="4" md="3" lg="2">1656                <i className="fa fa-file-picture-o fa-lg mt-4"></i><br />file-picture-o <span className="text-muted">(alias)</span>1657              </Col>1658              <Col xs="6" sm="4" md="3" lg="2">1659                <i className="fa fa-file-powerpoint-o fa-lg mt-4"></i><br />file-powerpoint-o1660              </Col>1661              <Col xs="6" sm="4" md="3" lg="2">1662                <i className="fa fa-file-sound-o fa-lg mt-4"></i><br />file-sound-o <span1663                className="text-muted">(alias)</span>1664              </Col>1665              <Col xs="6" sm="4" md="3" lg="2">1666                <i className="fa fa-file-text fa-lg mt-4"></i><br />file-text1667              </Col>1668              <Col xs="6" sm="4" md="3" lg="2">1669                <i className="fa fa-file-text-o fa-lg mt-4"></i><br />file-text-o1670              </Col>1671              <Col xs="6" sm="4" md="3" lg="2">1672                <i className="fa fa-file-video-o fa-lg mt-4"></i><br />file-video-o1673              </Col>1674              <Col xs="6" sm="4" md="3" lg="2">1675                <i className="fa fa-file-word-o fa-lg mt-4"></i><br />file-word-o1676              </Col>1677              <Col xs="6" sm="4" md="3" lg="2">1678                <i className="fa fa-file-zip-o fa-lg mt-4"></i><br />file-zip-o <span1679                className="text-muted">(alias)</span>1680              </Col>1681            </Row>1682          </CardBody>1683        </Card>1684        <Card id="spinner">1685          <CardHeader>Spinner Icons</CardHeader>1686          <CardBody>1687            <Alert color="success">1688              <ul className="fa-ul">1689                <li>1690                  <i className="fa fa-info-circle fa-li"></i>1691                  These icons work great with the <code>fa-spin</code> class.1692                </li>1693              </ul>1694            </Alert>1695            <Row className="text-center">1696              <Col xs="6" sm="4" md="3" lg="2">1697                <i className="fa fa-circle-o-notch fa-lg fa-spin mt-4"></i><br />circle-o-notch1698              </Col>1699              <Col xs="6" sm="4" md="3" lg="2">1700                <i className="fa fa-cog fa-lg mt-4"></i><br />cog1701              </Col>1702              <Col xs="6" sm="4" md="3" lg="2">1703                <i className="fa fa-gear fa-lg mt-4"></i><br />gear <span className="text-muted">(alias)</span>1704              </Col>1705              <Col xs="6" sm="4" md="3" lg="2">1706                <i className="fa fa-refresh fa-lg mt-4"></i><br />refresh1707              </Col>1708              <Col xs="6" sm="4" md="3" lg="2">1709                <i className="fa fa-spinner fa-lg mt-4"></i><br />spinner1710              </Col>1711            </Row>1712          </CardBody>1713        </Card>1714        <Card id="form-control">1715          <CardHeader>Form Control Icons</CardHeader>1716          <CardBody>1717            <Row className="text-center">1718              <Col xs="6" sm="4" md="3" lg="2">1719                <i className="fa fa-check-square fa-lg mt-4"></i><br />check-square1720              </Col>1721              <Col xs="6" sm="4" md="3" lg="2">1722                <i className="fa fa-check-square-o fa-lg mt-4"></i><br />check-square-o1723              </Col>1724              <Col xs="6" sm="4" md="3" lg="2">1725                <i className="fa fa-circle fa-lg mt-4"></i><br />circle1726              </Col>1727              <Col xs="6" sm="4" md="3" lg="2">1728                <i className="fa fa-circle-o fa-lg mt-4"></i><br />circle-o1729              </Col>1730              <Col xs="6" sm="4" md="3" lg="2">1731                <i className="fa fa-dot-circle-o fa-lg mt-4"></i><br />dot-circle-o1732              </Col>1733              <Col xs="6" sm="4" md="3" lg="2">1734                <i className="fa fa-minus-square fa-lg mt-4"></i><br />minus-square1735              </Col>1736              <Col xs="6" sm="4" md="3" lg="2">1737                <i className="fa fa-minus-square-o fa-lg mt-4"></i><br />minus-square-o1738              </Col>1739              <Col xs="6" sm="4" md="3" lg="2">1740                <i className="fa fa-plus-square fa-lg mt-4"></i><br />plus-square1741              </Col>1742              <Col xs="6" sm="4" md="3" lg="2">1743                <i className="fa fa-plus-square-o fa-lg mt-4"></i><br />plus-square-o1744              </Col>1745              <Col xs="6" sm="4" md="3" lg="2">1746                <i className="fa fa-square fa-lg mt-4"></i><br />square1747              </Col>1748              <Col xs="6" sm="4" md="3" lg="2">1749                <i className="fa fa-square-o fa-lg mt-4"></i><br />square-o1750              </Col>1751            </Row>1752          </CardBody>1753        </Card>1754        <Card id="payment">1755          <CardHeader>Payment Icons</CardHeader>1756          <CardBody>1757            <Row className="text-center">1758              <Col xs="6" sm="4" md="3" lg="2">1759                <i className="fa fa-cc-amex fa-lg mt-4"></i><br />cc-amex1760              </Col>1761              <Col xs="6" sm="4" md="3" lg="2">1762                <i className="fa fa-cc-diners-club fa-lg mt-4"></i><br />cc-diners-club1763              </Col>1764              <Col xs="6" sm="4" md="3" lg="2">1765                <i className="fa fa-cc-discover fa-lg mt-4"></i><br />cc-discover1766              </Col>1767              <Col xs="6" sm="4" md="3" lg="2">1768                <i className="fa fa-cc-jcb fa-lg mt-4"></i><br />cc-jcb1769              </Col>1770              <Col xs="6" sm="4" md="3" lg="2">1771                <i className="fa fa-cc-mastercard fa-lg mt-4"></i><br />cc-mastercard1772              </Col>1773              <Col xs="6" sm="4" md="3" lg="2">1774                <i className="fa fa-cc-paypal fa-lg mt-4"></i><br />cc-paypal1775              </Col>1776              <Col xs="6" sm="4" md="3" lg="2">1777                <i className="fa fa-cc-stripe fa-lg mt-4"></i><br />cc-stripe1778              </Col>1779              <Col xs="6" sm="4" md="3" lg="2">1780                <i className="fa fa-cc-visa fa-lg mt-4"></i><br />cc-visa1781              </Col>1782              <Col xs="6" sm="4" md="3" lg="2">1783                <i className="fa fa-credit-card fa-lg mt-4"></i><br />credit-card1784              </Col>1785              <Col xs="6" sm="4" md="3" lg="2">1786                <i className="fa fa-credit-card-alt fa-lg mt-4"></i><br />credit-card-alt1787              </Col>1788              <Col xs="6" sm="4" md="3" lg="2">1789                <i className="fa fa-google-wallet fa-lg mt-4"></i><br />google-wallet1790              </Col>1791              <Col xs="6" sm="4" md="3" lg="2">1792                <i className="fa fa-paypal fa-lg mt-4"></i><br />paypal1793              </Col>1794            </Row>1795          </CardBody>1796        </Card>1797        <Card id="chart">1798          <CardHeader>Chart Icons</CardHeader>1799          <CardBody>1800            <Row className="text-center">1801              <Col xs="6" sm="4" md="3" lg="2">1802                <i className="fa fa-area-chart fa-lg mt-4"></i><br />area-chart1803              </Col>1804              <Col xs="6" sm="4" md="3" lg="2">1805                <i className="fa fa-bar-chart fa-lg mt-4"></i><br />bar-chart1806              </Col>1807              <Col xs="6" sm="4" md="3" lg="2">1808                <i className="fa fa-bar-chart-o fa-lg mt-4"></i><br />bar-chart-o <span1809                className="text-muted">(alias)</span>1810              </Col>1811              <Col xs="6" sm="4" md="3" lg="2">1812                <i className="fa fa-line-chart fa-lg mt-4"></i><br />line-chart1813              </Col>1814              <Col xs="6" sm="4" md="3" lg="2">1815                <i className="fa fa-pie-chart fa-lg mt-4"></i><br />pie-chart1816              </Col>1817            </Row>1818          </CardBody>1819        </Card>1820        <Card id="currency">1821          <CardHeader>Currency Icons</CardHeader>1822          <CardBody>1823            <Row className="text-center">1824              <Col xs="6" sm="4" md="3" lg="2">1825                <i className="fa fa-bitcoin fa-lg mt-4"></i><br />bitcoin <span className="text-muted">(alias)</span>1826              </Col>1827              <Col xs="6" sm="4" md="3" lg="2">1828                <i className="fa fa-btc fa-lg mt-4"></i><br />btc1829              </Col>1830              <Col xs="6" sm="4" md="3" lg="2">1831                <i className="fa fa-cny fa-lg mt-4"></i><br />cny <span className="text-muted">(alias)</span>1832              </Col>1833              <Col xs="6" sm="4" md="3" lg="2">1834                <i className="fa fa-dollar fa-lg mt-4"></i><br />dollar <span className="text-muted">(alias)</span>1835              </Col>1836              <Col xs="6" sm="4" md="3" lg="2">1837                <i className="fa fa-eur fa-lg mt-4"></i><br />eur1838              </Col>1839              <Col xs="6" sm="4" md="3" lg="2">1840                <i className="fa fa-euro fa-lg mt-4"></i><br />euro <span className="text-muted">(alias)</span>1841              </Col>1842              <Col xs="6" sm="4" md="3" lg="2">1843                <i className="fa fa-gbp fa-lg mt-4"></i><br />gbp1844              </Col>1845              <Col xs="6" sm="4" md="3" lg="2">1846                <i className="fa fa-gg fa-lg mt-4"></i><br />gg1847              </Col>1848              <Col xs="6" sm="4" md="3" lg="2">1849                <i className="fa fa-gg-circle fa-lg mt-4"></i><br />gg-circle1850              </Col>1851              <Col xs="6" sm="4" md="3" lg="2">1852                <i className="fa fa-ils fa-lg mt-4"></i><br />ils1853              </Col>1854              <Col xs="6" sm="4" md="3" lg="2">1855                <i className="fa fa-inr fa-lg mt-4"></i><br />inr1856              </Col>1857              <Col xs="6" sm="4" md="3" lg="2">1858                <i className="fa fa-jpy fa-lg mt-4"></i><br />jpy1859              </Col>1860              <Col xs="6" sm="4" md="3" lg="2">1861                <i className="fa fa-krw fa-lg mt-4"></i><br />krw1862              </Col>1863              <Col xs="6" sm="4" md="3" lg="2">1864                <i className="fa fa-money fa-lg mt-4"></i><br />money1865              </Col>1866              <Col xs="6" sm="4" md="3" lg="2">1867                <i className="fa fa-rmb fa-lg mt-4"></i><br />rmb <span className="text-muted">(alias)</span>1868              </Col>1869              <Col xs="6" sm="4" md="3" lg="2">1870                <i className="fa fa-rouble fa-lg mt-4"></i><br />rouble <span className="text-muted">(alias)</span>1871              </Col>1872              <Col xs="6" sm="4" md="3" lg="2">1873                <i className="fa fa-rub fa-lg mt-4"></i><br />rub1874              </Col>1875              <Col xs="6" sm="4" md="3" lg="2">1876                <i className="fa fa-ruble fa-lg mt-4"></i><br />ruble <span className="text-muted">(alias)</span>1877              </Col>1878              <Col xs="6" sm="4" md="3" lg="2">1879                <i className="fa fa-rupee fa-lg mt-4"></i><br />rupee <span className="text-muted">(alias)</span>1880              </Col>1881              <Col xs="6" sm="4" md="3" lg="2">1882                <i className="fa fa-shekel fa-lg mt-4"></i><br />shekel <span className="text-muted">(alias)</span>1883              </Col>1884              <Col xs="6" sm="4" md="3" lg="2">1885                <i className="fa fa-sheqel fa-lg mt-4"></i><br />sheqel <span className="text-muted">(alias)</span>1886              </Col>1887              <Col xs="6" sm="4" md="3" lg="2">1888                <i className="fa fa-try fa-lg mt-4"></i><br />try1889              </Col>1890              <Col xs="6" sm="4" md="3" lg="2">1891                <i className="fa fa-turkish-lira fa-lg mt-4"></i><br />turkish-lira <span1892                className="text-muted">(alias)</span>1893              </Col>1894              <Col xs="6" sm="4" md="3" lg="2">1895                <i className="fa fa-usd fa-lg mt-4"></i><br />usd1896              </Col>1897              <Col xs="6" sm="4" md="3" lg="2">1898                <i className="fa fa-won fa-lg mt-4"></i><br />won <span className="text-muted">(alias)</span>1899              </Col>1900              <Col xs="6" sm="4" md="3" lg="2">1901                <i className="fa fa-yen fa-lg mt-4"></i><br />yen <span className="text-muted">(alias)</span>1902              </Col>1903            </Row>1904          </CardBody>1905        </Card>1906        <Card id="text-editor">1907          <CardHeader>Text Editor Icons</CardHeader>1908          <CardBody>1909            <Row className="text-center">1910              <Col xs="6" sm="4" md="3" lg="2">1911                <i className="fa fa-align-center fa-lg mt-4"></i><br />align-center1912              </Col>1913              <Col xs="6" sm="4" md="3" lg="2">1914                <i className="fa fa-align-justify fa-lg mt-4"></i><br />align-justify1915              </Col>1916              <Col xs="6" sm="4" md="3" lg="2">1917                <i className="fa fa-align-left fa-lg mt-4"></i><br />align-left1918              </Col>1919              <Col xs="6" sm="4" md="3" lg="2">1920                <i className="fa fa-align-right fa-lg mt-4"></i><br />align-right1921              </Col>1922              <Col xs="6" sm="4" md="3" lg="2">1923                <i className="fa fa-bold fa-lg mt-4"></i><br />bold1924              </Col>1925              <Col xs="6" sm="4" md="3" lg="2">1926                <i className="fa fa-chain fa-lg mt-4"></i><br />chain <span className="text-muted">(alias)</span>1927              </Col>1928              <Col xs="6" sm="4" md="3" lg="2">1929                <i className="fa fa-chain-broken fa-lg mt-4"></i><br />chain-broken1930              </Col>1931              <Col xs="6" sm="4" md="3" lg="2">1932                <i className="fa fa-clipboard fa-lg mt-4"></i><br />clipboard1933              </Col>1934              <Col xs="6" sm="4" md="3" lg="2">1935                <i className="fa fa-columns fa-lg mt-4"></i><br />columns1936              </Col>1937              <Col xs="6" sm="4" md="3" lg="2">1938                <i className="fa fa-copy fa-lg mt-4"></i><br />copy <span className="text-muted">(alias)</span>1939              </Col>1940              <Col xs="6" sm="4" md="3" lg="2">1941                <i className="fa fa-cut fa-lg mt-4"></i><br />cut <span className="text-muted">(alias)</span>1942              </Col>1943              <Col xs="6" sm="4" md="3" lg="2">1944                <i className="fa fa-dedent fa-lg mt-4"></i><br />dedent <span className="text-muted">(alias)</span>1945              </Col>1946              <Col xs="6" sm="4" md="3" lg="2">1947                <i className="fa fa-eraser fa-lg mt-4"></i><br />eraser1948              </Col>1949              <Col xs="6" sm="4" md="3" lg="2">1950                <i className="fa fa-file fa-lg mt-4"></i><br />file1951              </Col>1952              <Col xs="6" sm="4" md="3" lg="2">1953                <i className="fa fa-file-o fa-lg mt-4"></i><br />file-o1954              </Col>1955              <Col xs="6" sm="4" md="3" lg="2">1956                <i className="fa fa-file-text fa-lg mt-4"></i><br />file-text1957              </Col>1958              <Col xs="6" sm="4" md="3" lg="2">1959                <i className="fa fa-file-text-o fa-lg mt-4"></i><br />file-text-o1960              </Col>1961              <Col xs="6" sm="4" md="3" lg="2">1962                <i className="fa fa-files-o fa-lg mt-4"></i><br />files-o1963              </Col>1964              <Col xs="6" sm="4" md="3" lg="2">1965                <i className="fa fa-floppy-o fa-lg mt-4"></i><br />floppy-o1966              </Col>1967              <Col xs="6" sm="4" md="3" lg="2">1968                <i className="fa fa-font fa-lg mt-4"></i><br />font1969              </Col>1970              <Col xs="6" sm="4" md="3" lg="2">1971                <i className="fa fa-header fa-lg mt-4"></i><br />header1972              </Col>1973              <Col xs="6" sm="4" md="3" lg="2">1974                <i className="fa fa-indent fa-lg mt-4"></i><br />indent1975              </Col>1976              <Col xs="6" sm="4" md="3" lg="2">1977                <i className="fa fa-italic fa-lg mt-4"></i><br />italic1978              </Col>1979              <Col xs="6" sm="4" md="3" lg="2">1980                <i className="fa fa-link fa-lg mt-4"></i><br />link1981              </Col>1982              <Col xs="6" sm="4" md="3" lg="2">1983                <i className="fa fa-list fa-lg mt-4"></i><br />list1984              </Col>1985              <Col xs="6" sm="4" md="3" lg="2">1986                <i className="fa fa-list-alt fa-lg mt-4"></i><br />list-alt1987              </Col>1988              <Col xs="6" sm="4" md="3" lg="2">1989                <i className="fa fa-list-ol fa-lg mt-4"></i><br />list-ol1990              </Col>1991              <Col xs="6" sm="4" md="3" lg="2">1992                <i className="fa fa-list-ul fa-lg mt-4"></i><br />list-ul1993              </Col>1994              <Col xs="6" sm="4" md="3" lg="2">1995                <i className="fa fa-outdent fa-lg mt-4"></i><br />outdent1996              </Col>1997              <Col xs="6" sm="4" md="3" lg="2">1998                <i className="fa fa-paperclip fa-lg mt-4"></i><br />paperclip1999              </Col>2000              <Col xs="6" sm="4" md="3" lg="2">2001                <i className="fa fa-paragraph fa-lg mt-4"></i><br />paragraph2002              </Col>2003              <Col xs="6" sm="4" md="3" lg="2">2004                <i className="fa fa-paste fa-lg mt-4"></i><br />paste <span className="text-muted">(alias)</span>2005              </Col>2006              <Col xs="6" sm="4" md="3" lg="2">2007                <i className="fa fa-repeat fa-lg mt-4"></i><br />repeat2008              </Col>2009              <Col xs="6" sm="4" md="3" lg="2">2010                <i className="fa fa-rotate-left fa-lg mt-4"></i><br />rotate-left <span2011                className="text-muted">(alias)</span>2012              </Col>2013              <Col xs="6" sm="4" md="3" lg="2">2014                <i className="fa fa-rotate-right fa-lg mt-4"></i><br />rotate-right <span2015                className="text-muted">(alias)</span>2016              </Col>2017              <Col xs="6" sm="4" md="3" lg="2">2018                <i className="fa fa-save fa-lg mt-4"></i><br />save <span className="text-muted">(alias)</span>2019              </Col>2020              <Col xs="6" sm="4" md="3" lg="2">2021                <i className="fa fa-scissors fa-lg mt-4"></i><br />scissors2022              </Col>2023              <Col xs="6" sm="4" md="3" lg="2">2024                <i className="fa fa-strikethrough fa-lg mt-4"></i><br />strikethrough2025              </Col>2026              <Col xs="6" sm="4" md="3" lg="2">2027                <i className="fa fa-subscript fa-lg mt-4"></i><br />subscript2028              </Col>2029              <Col xs="6" sm="4" md="3" lg="2">2030                <i className="fa fa-superscript fa-lg mt-4"></i><br />superscript2031              </Col>2032              <Col xs="6" sm="4" md="3" lg="2">2033                <i className="fa fa-table fa-lg mt-4"></i><br />table2034              </Col>2035              <Col xs="6" sm="4" md="3" lg="2">2036                <i className="fa fa-text-height fa-lg mt-4"></i><br />text-height2037              </Col>2038              <Col xs="6" sm="4" md="3" lg="2">2039                <i className="fa fa-text-width fa-lg mt-4"></i><br />text-width2040              </Col>2041              <Col xs="6" sm="4" md="3" lg="2">2042                <i className="fa fa-th fa-lg mt-4"></i><br />th2043              </Col>2044              <Col xs="6" sm="4" md="3" lg="2">2045                <i className="fa fa-th-large fa-lg mt-4"></i><br />th-large2046              </Col>2047              <Col xs="6" sm="4" md="3" lg="2">2048                <i className="fa fa-th-list fa-lg mt-4"></i><br />th-list2049              </Col>2050              <Col xs="6" sm="4" md="3" lg="2">2051                <i className="fa fa-underline fa-lg mt-4"></i><br />underline2052              </Col>2053              <Col xs="6" sm="4" md="3" lg="2">2054                <i className="fa fa-undo fa-lg mt-4"></i><br />undo2055              </Col>2056              <Col xs="6" sm="4" md="3" lg="2">2057                <i className="fa fa-unlink fa-lg mt-4"></i><br />unlink <span className="text-muted">(alias)</span>2058              </Col>2059            </Row>2060          </CardBody>2061        </Card>2062        <Card id="directional">2063          <CardHeader>Directional Icons</CardHeader>2064          <CardBody>2065            <Row className="text-center">2066              <Col xs="6" sm="4" md="3" lg="2">2067                <i className="fa fa-angle-double-down fa-lg mt-4"></i><br />angle-double-down2068              </Col>2069              <Col xs="6" sm="4" md="3" lg="2">2070                <i className="fa fa-angle-double-left fa-lg mt-4"></i><br />angle-double-left2071              </Col>2072              <Col xs="6" sm="4" md="3" lg="2">2073                <i className="fa fa-angle-double-right fa-lg mt-4"></i><br />angle-double-right2074              </Col>2075              <Col xs="6" sm="4" md="3" lg="2">2076                <i className="fa fa-angle-double-up fa-lg mt-4"></i><br />angle-double-up2077              </Col>2078              <Col xs="6" sm="4" md="3" lg="2">2079                <i className="fa fa-angle-down fa-lg mt-4"></i><br />angle-down2080              </Col>2081              <Col xs="6" sm="4" md="3" lg="2">2082                <i className="fa fa-angle-left fa-lg mt-4"></i><br />angle-left2083              </Col>2084              <Col xs="6" sm="4" md="3" lg="2">2085                <i className="fa fa-angle-right fa-lg mt-4"></i><br />angle-right2086              </Col>2087              <Col xs="6" sm="4" md="3" lg="2">2088                <i className="fa fa-angle-up fa-lg mt-4"></i><br />angle-up2089              </Col>2090              <Col xs="6" sm="4" md="3" lg="2">2091                <i className="fa fa-arrow-circle-down fa-lg mt-4"></i><br />arrow-circle-down2092              </Col>2093              <Col xs="6" sm="4" md="3" lg="2">2094                <i className="fa fa-arrow-circle-left fa-lg mt-4"></i><br />arrow-circle-left2095              </Col>2096              <Col xs="6" sm="4" md="3" lg="2">2097                <i className="fa fa-arrow-circle-o-down fa-lg mt-4"></i><br />arrow-circle-o-down2098              </Col>2099              <Col xs="6" sm="4" md="3" lg="2">2100                <i className="fa fa-arrow-circle-o-left fa-lg mt-4"></i><br />arrow-circle-o-left2101              </Col>2102              <Col xs="6" sm="4" md="3" lg="2">2103                <i className="fa fa-arrow-circle-o-right fa-lg mt-4"></i><br />arrow-circle-o-right2104              </Col>2105              <Col xs="6" sm="4" md="3" lg="2">2106                <i className="fa fa-arrow-circle-o-up fa-lg mt-4"></i><br />arrow-circle-o-up2107              </Col>2108              <Col xs="6" sm="4" md="3" lg="2">2109                <i className="fa fa-arrow-circle-right fa-lg mt-4"></i><br />arrow-circle-right2110              </Col>2111              <Col xs="6" sm="4" md="3" lg="2">2112                <i className="fa fa-arrow-circle-up fa-lg mt-4"></i><br />arrow-circle-up2113              </Col>2114              <Col xs="6" sm="4" md="3" lg="2">2115                <i className="fa fa-arrow-down fa-lg mt-4"></i><br />arrow-down2116              </Col>2117              <Col xs="6" sm="4" md="3" lg="2">2118                <i className="fa fa-arrow-left fa-lg mt-4"></i><br />arrow-left2119              </Col>2120              <Col xs="6" sm="4" md="3" lg="2">2121                <i className="fa fa-arrow-right fa-lg mt-4"></i><br />arrow-right2122              </Col>2123              <Col xs="6" sm="4" md="3" lg="2">2124                <i className="fa fa-arrow-up fa-lg mt-4"></i><br />arrow-up2125              </Col>2126              <Col xs="6" sm="4" md="3" lg="2">2127                <i className="fa fa-arrows fa-lg mt-4"></i><br />arrows2128              </Col>2129              <Col xs="6" sm="4" md="3" lg="2">2130                <i className="fa fa-arrows-alt fa-lg mt-4"></i><br />arrows-alt2131              </Col>2132              <Col xs="6" sm="4" md="3" lg="2">2133                <i className="fa fa-arrows-h fa-lg mt-4"></i><br />arrows-h2134              </Col>2135              <Col xs="6" sm="4" md="3" lg="2">2136                <i className="fa fa-arrows-v fa-lg mt-4"></i><br />arrows-v2137              </Col>2138              <Col xs="6" sm="4" md="3" lg="2">2139                <i className="fa fa-caret-down fa-lg mt-4"></i><br />caret-down2140              </Col>2141              <Col xs="6" sm="4" md="3" lg="2">2142                <i className="fa fa-caret-left fa-lg mt-4"></i><br />caret-left2143              </Col>2144              <Col xs="6" sm="4" md="3" lg="2">2145                <i className="fa fa-caret-right fa-lg mt-4"></i><br />caret-right2146              </Col>2147              <Col xs="6" sm="4" md="3" lg="2">2148                <i className="fa fa-caret-square-o-down fa-lg mt-4"></i><br />caret-square-o-down2149              </Col>2150              <Col xs="6" sm="4" md="3" lg="2">2151                <i className="fa fa-caret-square-o-left fa-lg mt-4"></i><br />caret-square-o-left2152              </Col>2153              <Col xs="6" sm="4" md="3" lg="2">2154                <i className="fa fa-caret-square-o-right fa-lg mt-4"></i><br />caret-square-o-right2155              </Col>2156              <Col xs="6" sm="4" md="3" lg="2">2157                <i className="fa fa-caret-square-o-up fa-lg mt-4"></i><br />caret-square-o-up2158              </Col>2159              <Col xs="6" sm="4" md="3" lg="2">2160                <i className="fa fa-caret-up fa-lg mt-4"></i><br />caret-up2161              </Col>2162              <Col xs="6" sm="4" md="3" lg="2">2163                <i className="fa fa-chevron-circle-down fa-lg mt-4"></i><br />chevron-circle-down2164              </Col>2165              <Col xs="6" sm="4" md="3" lg="2">2166                <i className="fa fa-chevron-circle-left fa-lg mt-4"></i><br />chevron-circle-left2167              </Col>2168              <Col xs="6" sm="4" md="3" lg="2">2169                <i className="fa fa-chevron-circle-right fa-lg mt-4"></i><br />chevron-circle-right2170              </Col>2171              <Col xs="6" sm="4" md="3" lg="2">2172                <i className="fa fa-chevron-circle-up fa-lg mt-4"></i><br />chevron-circle-up2173              </Col>2174              <Col xs="6" sm="4" md="3" lg="2">2175                <i className="fa fa-chevron-down fa-lg mt-4"></i><br />chevron-down2176              </Col>2177              <Col xs="6" sm="4" md="3" lg="2">2178                <i className="fa fa-chevron-left fa-lg mt-4"></i><br />chevron-left2179              </Col>2180              <Col xs="6" sm="4" md="3" lg="2">2181                <i className="fa fa-chevron-right fa-lg mt-4"></i><br />chevron-right2182              </Col>2183              <Col xs="6" sm="4" md="3" lg="2">2184                <i className="fa fa-chevron-up fa-lg mt-4"></i><br />chevron-up2185              </Col>2186              <Col xs="6" sm="4" md="3" lg="2">2187                <i className="fa fa-exchange fa-lg mt-4"></i><br />exchange2188              </Col>2189              <Col xs="6" sm="4" md="3" lg="2">2190                <i className="fa fa-hand-o-down fa-lg mt-4"></i><br />hand-o-down2191              </Col>2192              <Col xs="6" sm="4" md="3" lg="2">2193                <i className="fa fa-hand-o-left fa-lg mt-4"></i><br />hand-o-left2194              </Col>2195              <Col xs="6" sm="4" md="3" lg="2">2196                <i className="fa fa-hand-o-right fa-lg mt-4"></i><br />hand-o-right2197              </Col>2198              <Col xs="6" sm="4" md="3" lg="2">2199                <i className="fa fa-hand-o-up fa-lg mt-4"></i><br />hand-o-up2200              </Col>2201              <Col xs="6" sm="4" md="3" lg="2">2202                <i className="fa fa-long-arrow-down fa-lg mt-4"></i><br />long-arrow-down2203              </Col>2204              <Col xs="6" sm="4" md="3" lg="2">2205                <i className="fa fa-long-arrow-left fa-lg mt-4"></i><br />long-arrow-left2206              </Col>2207              <Col xs="6" sm="4" md="3" lg="2">2208                <i className="fa fa-long-arrow-right fa-lg mt-4"></i><br />long-arrow-right2209              </Col>2210              <Col xs="6" sm="4" md="3" lg="2">2211                <i className="fa fa-long-arrow-up fa-lg mt-4"></i><br />long-arrow-up2212              </Col>2213              <Col xs="6" sm="4" md="3" lg="2">2214                <i className="fa fa-toggle-down fa-lg mt-4"></i><br />toggle-down <span2215                className="text-muted">(alias)</span>2216              </Col>2217              <Col xs="6" sm="4" md="3" lg="2">2218                <i className="fa fa-toggle-left fa-lg mt-4"></i><br />toggle-left <span2219                className="text-muted">(alias)</span>2220              </Col>2221              <Col xs="6" sm="4" md="3" lg="2">2222                <i className="fa fa-toggle-right fa-lg mt-4"></i><br />toggle-right <span2223                className="text-muted">(alias)</span>2224              </Col>2225              <Col xs="6" sm="4" md="3" lg="2">2226                <i className="fa fa-toggle-up fa-lg mt-4"></i><br />toggle-up <span className="text-muted">(alias)</span>2227              </Col>2228            </Row>2229          </CardBody>2230        </Card>2231        <Card id="video-player">2232          <CardHeader>Video Player Icons</CardHeader>2233          <CardBody>2234            <Row className="text-center">2235              <Col xs="6" sm="4" md="3" lg="2">2236                <i className="fa fa-arrows-alt fa-lg mt-4"></i><br />arrows-alt2237              </Col>2238              <Col xs="6" sm="4" md="3" lg="2">2239                <i className="fa fa-backward fa-lg mt-4"></i><br />backward2240              </Col>2241              <Col xs="6" sm="4" md="3" lg="2">2242                <i className="fa fa-compress fa-lg mt-4"></i><br />compress2243              </Col>2244              <Col xs="6" sm="4" md="3" lg="2">2245                <i className="fa fa-eject fa-lg mt-4"></i><br />eject2246              </Col>2247              <Col xs="6" sm="4" md="3" lg="2">2248                <i className="fa fa-expand fa-lg mt-4"></i><br />expand2249              </Col>2250              <Col xs="6" sm="4" md="3" lg="2">2251                <i className="fa fa-fast-backward fa-lg mt-4"></i><br />fast-backward2252              </Col>2253              <Col xs="6" sm="4" md="3" lg="2">2254                <i className="fa fa-fast-forward fa-lg mt-4"></i><br />fast-forward2255              </Col>2256              <Col xs="6" sm="4" md="3" lg="2">2257                <i className="fa fa-forward fa-lg mt-4"></i><br />forward2258              </Col>2259              <Col xs="6" sm="4" md="3" lg="2">2260                <i className="fa fa-pause fa-lg mt-4"></i><br />pause2261              </Col>2262              <Col xs="6" sm="4" md="3" lg="2">2263                <i className="fa fa-pause-circle fa-lg mt-4"></i><br />pause-circle2264              </Col>2265              <Col xs="6" sm="4" md="3" lg="2">2266                <i className="fa fa-pause-circle-o fa-lg mt-4"></i><br />pause-circle-o2267              </Col>2268              <Col xs="6" sm="4" md="3" lg="2">2269                <i className="fa fa-play fa-lg mt-4"></i><br />play2270              </Col>2271              <Col xs="6" sm="4" md="3" lg="2">2272                <i className="fa fa-play-circle fa-lg mt-4"></i><br />play-circle2273              </Col>2274              <Col xs="6" sm="4" md="3" lg="2">2275                <i className="fa fa-play-circle-o fa-lg mt-4"></i><br />play-circle-o2276              </Col>2277              <Col xs="6" sm="4" md="3" lg="2">2278                <i className="fa fa-random fa-lg mt-4"></i><br />random2279              </Col>2280              <Col xs="6" sm="4" md="3" lg="2">2281                <i className="fa fa-step-backward fa-lg mt-4"></i><br />step-backward2282              </Col>2283              <Col xs="6" sm="4" md="3" lg="2">2284                <i className="fa fa-step-forward fa-lg mt-4"></i><br />step-forward2285              </Col>2286              <Col xs="6" sm="4" md="3" lg="2">2287                <i className="fa fa-stop fa-lg mt-4"></i><br />stop2288              </Col>2289              <Col xs="6" sm="4" md="3" lg="2">2290                <i className="fa fa-stop-circle fa-lg mt-4"></i><br />stop-circle2291              </Col>2292              <Col xs="6" sm="4" md="3" lg="2">2293                <i className="fa fa-stop-circle-o fa-lg mt-4"></i><br />stop-circle-o2294              </Col>2295              <Col xs="6" sm="4" md="3" lg="2">2296                <i className="fa fa-youtube-play fa-lg mt-4"></i><br />youtube-play2297              </Col>2298            </Row>2299          </CardBody>2300        </Card>2301        <Card id="brand">2302          <CardHeader>Brand Icons</CardHeader>2303          <CardBody>2304            <Alert color="warning">2305              <h4><i className="fa fa-warning"></i> Warning!</h4>2306              Apparently, Adblock Plus can remove Font Awesome brand icons with their "Remove Social2307              Media Buttons" setting. We will not use hacks to force them to display. Please2308              <a href="https://adblockplus.org/en/bugs" className="alert-link"> report an issue with Adblock Plus</a> if2309              you believe this to be2310              an error. To work around this, you'll need to modify the social icon class names.2311            </Alert>2312            <Row className="text-center">2313              <Col xs="6" sm="4" md="3" lg="2">2314                <i className="fa fa-500px fa-lg mt-4"></i><br />500px2315              </Col>2316              <Col xs="6" sm="4" md="3" lg="2">2317                <i className="fa fa-adn fa-lg mt-4"></i><br />adn2318              </Col>2319              <Col xs="6" sm="4" md="3" lg="2">2320                <i className="fa fa-amazon fa-lg mt-4"></i><br />amazon2321              </Col>2322              <Col xs="6" sm="4" md="3" lg="2">2323                <i className="fa fa-android fa-lg mt-4"></i><br />android2324              </Col>2325              <Col xs="6" sm="4" md="3" lg="2">2326                <i className="fa fa-angellist fa-lg mt-4"></i><br />angellist2327              </Col>2328              <Col xs="6" sm="4" md="3" lg="2">2329                <i className="fa fa-apple fa-lg mt-4"></i><br />apple2330              </Col>2331              <Col xs="6" sm="4" md="3" lg="2">2332                <i className="fa fa-behance fa-lg mt-4"></i><br />behance2333              </Col>2334              <Col xs="6" sm="4" md="3" lg="2">2335                <i className="fa fa-behance-square fa-lg mt-4"></i><br />behance-square2336              </Col>2337              <Col xs="6" sm="4" md="3" lg="2">2338                <i className="fa fa-bitbucket fa-lg mt-4"></i><br />bitbucket2339              </Col>2340              <Col xs="6" sm="4" md="3" lg="2">2341                <i className="fa fa-bitbucket-square fa-lg mt-4"></i><br />bitbucket-square2342              </Col>2343              <Col xs="6" sm="4" md="3" lg="2">2344                <i className="fa fa-bitcoin fa-lg mt-4"></i><br />bitcoin <span className="text-muted">(alias)</span>2345              </Col>2346              <Col xs="6" sm="4" md="3" lg="2">2347                <i className="fa fa-black-tie fa-lg mt-4"></i><br />black-tie2348              </Col>2349              <Col xs="6" sm="4" md="3" lg="2">2350                <i className="fa fa-bluetooth fa-lg mt-4"></i><br />bluetooth2351              </Col>2352              <Col xs="6" sm="4" md="3" lg="2">2353                <i className="fa fa-bluetooth-b fa-lg mt-4"></i><br />bluetooth-b2354              </Col>2355              <Col xs="6" sm="4" md="3" lg="2">2356                <i className="fa fa-btc fa-lg mt-4"></i><br />btc2357              </Col>2358              <Col xs="6" sm="4" md="3" lg="2">2359                <i className="fa fa-buysellads fa-lg mt-4"></i><br />buysellads2360              </Col>2361              <Col xs="6" sm="4" md="3" lg="2">2362                <i className="fa fa-cc-amex fa-lg mt-4"></i><br />cc-amex2363              </Col>2364              <Col xs="6" sm="4" md="3" lg="2">2365                <i className="fa fa-cc-diners-club fa-lg mt-4"></i><br />cc-diners-club2366              </Col>2367              <Col xs="6" sm="4" md="3" lg="2">2368                <i className="fa fa-cc-discover fa-lg mt-4"></i><br />cc-discover2369              </Col>2370              <Col xs="6" sm="4" md="3" lg="2">2371                <i className="fa fa-cc-jcb fa-lg mt-4"></i><br />cc-jcb2372              </Col>2373              <Col xs="6" sm="4" md="3" lg="2">2374                <i className="fa fa-cc-mastercard fa-lg mt-4"></i><br />cc-mastercard2375              </Col>2376              <Col xs="6" sm="4" md="3" lg="2">2377                <i className="fa fa-cc-paypal fa-lg mt-4"></i><br />cc-paypal2378              </Col>2379              <Col xs="6" sm="4" md="3" lg="2">2380                <i className="fa fa-cc-stripe fa-lg mt-4"></i><br />cc-stripe2381              </Col>2382              <Col xs="6" sm="4" md="3" lg="2">2383                <i className="fa fa-cc-visa fa-lg mt-4"></i><br />cc-visa2384              </Col>2385              <Col xs="6" sm="4" md="3" lg="2">2386                <i className="fa fa-chrome fa-lg mt-4"></i><br />chrome2387              </Col>2388              <Col xs="6" sm="4" md="3" lg="2">2389                <i className="fa fa-codepen fa-lg mt-4"></i><br />codepen2390              </Col>2391              <Col xs="6" sm="4" md="3" lg="2">2392                <i className="fa fa-codiepie fa-lg mt-4"></i><br />codiepie2393              </Col>2394              <Col xs="6" sm="4" md="3" lg="2">2395                <i className="fa fa-connectdevelop fa-lg mt-4"></i><br />connectdevelop2396              </Col>2397              <Col xs="6" sm="4" md="3" lg="2">2398                <i className="fa fa-contao fa-lg mt-4"></i><br />contao2399              </Col>2400              <Col xs="6" sm="4" md="3" lg="2">2401                <i className="fa fa-css3 fa-lg mt-4"></i><br />css32402              </Col>2403              <Col xs="6" sm="4" md="3" lg="2">2404                <i className="fa fa-dashcube fa-lg mt-4"></i><br />dashcube2405              </Col>2406              <Col xs="6" sm="4" md="3" lg="2">2407                <i className="fa fa-delicious fa-lg mt-4"></i><br />delicious2408              </Col>2409              <Col xs="6" sm="4" md="3" lg="2">2410                <i className="fa fa-deviantart fa-lg mt-4"></i><br />deviantart2411              </Col>2412              <Col xs="6" sm="4" md="3" lg="2">2413                <i className="fa fa-digg fa-lg mt-4"></i><br />digg2414              </Col>2415              <Col xs="6" sm="4" md="3" lg="2">2416                <i className="fa fa-dribbble fa-lg mt-4"></i><br />dribbble2417              </Col>2418              <Col xs="6" sm="4" md="3" lg="2">2419                <i className="fa fa-dropbox fa-lg mt-4"></i><br />dropbox2420              </Col>2421              <Col xs="6" sm="4" md="3" lg="2">2422                <i className="fa fa-drupal fa-lg mt-4"></i><br />drupal2423              </Col>2424              <Col xs="6" sm="4" md="3" lg="2">2425                <i className="fa fa-edge fa-lg mt-4"></i><br />edge2426              </Col>2427              <Col xs="6" sm="4" md="3" lg="2">2428                <i className="fa fa-empire fa-lg mt-4"></i><br />empire2429              </Col>2430              <Col xs="6" sm="4" md="3" lg="2">2431                <i className="fa fa-expeditedssl fa-lg mt-4"></i><br />expeditedssl2432              </Col>2433              <Col xs="6" sm="4" md="3" lg="2">2434                <i className="fa fa-facebook fa-lg mt-4"></i><br />facebook2435              </Col>2436              <Col xs="6" sm="4" md="3" lg="2">2437                <i className="fa fa-facebook-f fa-lg mt-4"></i><br />facebook-f <span2438                className="text-muted">(alias)</span>2439              </Col>2440              <Col xs="6" sm="4" md="3" lg="2">2441                <i className="fa fa-facebook-official fa-lg mt-4"></i><br />facebook-official2442              </Col>2443              <Col xs="6" sm="4" md="3" lg="2">2444                <i className="fa fa-facebook-square fa-lg mt-4"></i><br />facebook-square2445              </Col>2446              <Col xs="6" sm="4" md="3" lg="2">2447                <i className="fa fa-firefox fa-lg mt-4"></i><br />firefox2448              </Col>2449              <Col xs="6" sm="4" md="3" lg="2">2450                <i className="fa fa-flickr fa-lg mt-4"></i><br />flickr2451              </Col>2452              <Col xs="6" sm="4" md="3" lg="2">2453                <i className="fa fa-fonticons fa-lg mt-4"></i><br />fonticons2454              </Col>2455              <Col xs="6" sm="4" md="3" lg="2">2456                <i className="fa fa-fort-awesome fa-lg mt-4"></i><br />fort-awesome2457              </Col>2458              <Col xs="6" sm="4" md="3" lg="2">2459                <i className="fa fa-forumbee fa-lg mt-4"></i><br />forumbee2460              </Col>2461              <Col xs="6" sm="4" md="3" lg="2">2462                <i className="fa fa-foursquare fa-lg mt-4"></i><br />foursquare2463              </Col>2464              <Col xs="6" sm="4" md="3" lg="2">2465                <i className="fa fa-ge fa-lg mt-4"></i><br />ge <span className="text-muted">(alias)</span>2466              </Col>2467              <Col xs="6" sm="4" md="3" lg="2">2468                <i className="fa fa-get-pocket fa-lg mt-4"></i><br />get-pocket2469              </Col>2470              <Col xs="6" sm="4" md="3" lg="2">2471                <i className="fa fa-gg fa-lg mt-4"></i><br />gg2472              </Col>2473              <Col xs="6" sm="4" md="3" lg="2">2474                <i className="fa fa-gg-circle fa-lg mt-4"></i><br />gg-circle2475              </Col>2476              <Col xs="6" sm="4" md="3" lg="2">2477                <i className="fa fa-git fa-lg mt-4"></i><br />git2478              </Col>2479              <Col xs="6" sm="4" md="3" lg="2">2480                <i className="fa fa-git-square fa-lg mt-4"></i><br />git-square2481              </Col>2482              <Col xs="6" sm="4" md="3" lg="2">2483                <i className="fa fa-github fa-lg mt-4"></i><br />github2484              </Col>2485              <Col xs="6" sm="4" md="3" lg="2">2486                <i className="fa fa-github-alt fa-lg mt-4"></i><br />github-alt2487              </Col>2488              <Col xs="6" sm="4" md="3" lg="2">2489                <i className="fa fa-github-square fa-lg mt-4"></i><br />github-square2490              </Col>2491              <Col xs="6" sm="4" md="3" lg="2">2492                <i className="fa fa-gittip fa-lg mt-4"></i><br />gittip <span className="text-muted">(alias)</span>2493              </Col>2494              <Col xs="6" sm="4" md="3" lg="2">2495                <i className="fa fa-google fa-lg mt-4"></i><br />google2496              </Col>2497              <Col xs="6" sm="4" md="3" lg="2">2498                <i className="fa fa-google-plus fa-lg mt-4"></i><br />google-plus2499              </Col>2500              <Col xs="6" sm="4" md="3" lg="2">2501                <i className="fa fa-google-plus-square fa-lg mt-4"></i><br />google-plus-square2502              </Col>2503              <Col xs="6" sm="4" md="3" lg="2">2504                <i className="fa fa-google-wallet fa-lg mt-4"></i><br />google-wallet2505              </Col>2506              <Col xs="6" sm="4" md="3" lg="2">2507                <i className="fa fa-gratipay fa-lg mt-4"></i><br />gratipay2508              </Col>2509              <Col xs="6" sm="4" md="3" lg="2">2510                <i className="fa fa-hacker-news fa-lg mt-4"></i><br />hacker-news2511              </Col>2512              <Col xs="6" sm="4" md="3" lg="2">2513                <i className="fa fa-houzz fa-lg mt-4"></i><br />houzz2514              </Col>2515              <Col xs="6" sm="4" md="3" lg="2">2516                <i className="fa fa-html5 fa-lg mt-4"></i><br />html52517              </Col>2518              <Col xs="6" sm="4" md="3" lg="2">2519                <i className="fa fa-instagram fa-lg mt-4"></i><br />instagram2520              </Col>2521              <Col xs="6" sm="4" md="3" lg="2">2522                <i className="fa fa-internet-explorer fa-lg mt-4"></i><br />internet-explorer2523              </Col>2524              <Col xs="6" sm="4" md="3" lg="2">2525                <i className="fa fa-ioxhost fa-lg mt-4"></i><br />ioxhost2526              </Col>2527              <Col xs="6" sm="4" md="3" lg="2">2528                <i className="fa fa-joomla fa-lg mt-4"></i><br />joomla2529              </Col>2530              <Col xs="6" sm="4" md="3" lg="2">2531                <i className="fa fa-jsfiddle fa-lg mt-4"></i><br />jsfiddle2532              </Col>2533              <Col xs="6" sm="4" md="3" lg="2">2534                <i className="fa fa-lastfm fa-lg mt-4"></i><br />lastfm2535              </Col>2536              <Col xs="6" sm="4" md="3" lg="2">2537                <i className="fa fa-lastfm-square fa-lg mt-4"></i><br />lastfm-square2538              </Col>2539              <Col xs="6" sm="4" md="3" lg="2">2540                <i className="fa fa-leanpub fa-lg mt-4"></i><br />leanpub2541              </Col>2542              <Col xs="6" sm="4" md="3" lg="2">2543                <i className="fa fa-linkedin fa-lg mt-4"></i><br />linkedin2544              </Col>2545              <Col xs="6" sm="4" md="3" lg="2">2546                <i className="fa fa-linkedin-square fa-lg mt-4"></i><br />linkedin-square2547              </Col>2548              <Col xs="6" sm="4" md="3" lg="2">2549                <i className="fa fa-linux fa-lg mt-4"></i><br />linux2550              </Col>2551              <Col xs="6" sm="4" md="3" lg="2">2552                <i className="fa fa-maxcdn fa-lg mt-4"></i><br />maxcdn2553              </Col>2554              <Col xs="6" sm="4" md="3" lg="2">2555                <i className="fa fa-meanpath fa-lg mt-4"></i><br />meanpath2556              </Col>2557              <Col xs="6" sm="4" md="3" lg="2">2558                <i className="fa fa-medium fa-lg mt-4"></i><br />medium2559              </Col>2560              <Col xs="6" sm="4" md="3" lg="2">2561                <i className="fa fa-mixcloud fa-lg mt-4"></i><br />mixcloud2562              </Col>2563              <Col xs="6" sm="4" md="3" lg="2">2564                <i className="fa fa-modx fa-lg mt-4"></i><br />modx2565              </Col>2566              <Col xs="6" sm="4" md="3" lg="2">2567                <i className="fa fa-odnoklassniki fa-lg mt-4"></i><br />odnoklassniki2568              </Col>2569              <Col xs="6" sm="4" md="3" lg="2">2570                <i className="fa fa-odnoklassniki-square fa-lg mt-4"></i><br />odnoklassniki-square2571              </Col>2572              <Col xs="6" sm="4" md="3" lg="2">2573                <i className="fa fa-opencart fa-lg mt-4"></i><br />opencart2574              </Col>2575              <Col xs="6" sm="4" md="3" lg="2">2576                <i className="fa fa-openid fa-lg mt-4"></i><br />openid2577              </Col>2578              <Col xs="6" sm="4" md="3" lg="2">2579                <i className="fa fa-opera fa-lg mt-4"></i><br />opera2580              </Col>2581              <Col xs="6" sm="4" md="3" lg="2">2582                <i className="fa fa-optin-monster fa-lg mt-4"></i><br />optin-monster2583              </Col>2584              <Col xs="6" sm="4" md="3" lg="2">2585                <i className="fa fa-pagelines fa-lg mt-4"></i><br />pagelines2586              </Col>2587              <Col xs="6" sm="4" md="3" lg="2">2588                <i className="fa fa-paypal fa-lg mt-4"></i><br />paypal2589              </Col>2590              <Col xs="6" sm="4" md="3" lg="2">2591                <i className="fa fa-pied-piper fa-lg mt-4"></i><br />pied-piper2592              </Col>2593              <Col xs="6" sm="4" md="3" lg="2">2594                <i className="fa fa-pied-piper-alt fa-lg mt-4"></i><br />pied-piper-alt2595              </Col>2596              <Col xs="6" sm="4" md="3" lg="2">2597                <i className="fa fa-pinterest fa-lg mt-4"></i><br />pinterest2598              </Col>2599              <Col xs="6" sm="4" md="3" lg="2">2600                <i className="fa fa-pinterest-p fa-lg mt-4"></i><br />pinterest-p2601              </Col>2602              <Col xs="6" sm="4" md="3" lg="2">2603                <i className="fa fa-pinterest-square fa-lg mt-4"></i><br />pinterest-square2604              </Col>2605              <Col xs="6" sm="4" md="3" lg="2">2606                <i className="fa fa-product-hunt fa-lg mt-4"></i><br />product-hunt2607              </Col>2608              <Col xs="6" sm="4" md="3" lg="2">2609                <i className="fa fa-qq fa-lg mt-4"></i><br />qq2610              </Col>2611              <Col xs="6" sm="4" md="3" lg="2">2612                <i className="fa fa-ra fa-lg mt-4"></i><br />ra <span className="text-muted">(alias)</span>2613              </Col>2614              <Col xs="6" sm="4" md="3" lg="2">2615                <i className="fa fa-rebel fa-lg mt-4"></i><br />rebel2616              </Col>2617              <Col xs="6" sm="4" md="3" lg="2">2618                <i className="fa fa-reddit fa-lg mt-4"></i><br />reddit2619              </Col>2620              <Col xs="6" sm="4" md="3" lg="2">2621                <i className="fa fa-reddit-alien fa-lg mt-4"></i><br />reddit-alien2622              </Col>2623              <Col xs="6" sm="4" md="3" lg="2">2624                <i className="fa fa-reddit-square fa-lg mt-4"></i><br />reddit-square2625              </Col>2626              <Col xs="6" sm="4" md="3" lg="2">2627                <i className="fa fa-renren fa-lg mt-4"></i><br />renren2628              </Col>2629              <Col xs="6" sm="4" md="3" lg="2">2630                <i className="fa fa-safari fa-lg mt-4"></i><br />safari2631              </Col>2632              <Col xs="6" sm="4" md="3" lg="2">2633                <i className="fa fa-scribd fa-lg mt-4"></i><br />scribd2634              </Col>2635              <Col xs="6" sm="4" md="3" lg="2">2636                <i className="fa fa-sellsy fa-lg mt-4"></i><br />sellsy2637              </Col>2638              <Col xs="6" sm="4" md="3" lg="2">2639                <i className="fa fa-share-alt fa-lg mt-4"></i><br />share-alt2640              </Col>2641              <Col xs="6" sm="4" md="3" lg="2">2642                <i className="fa fa-share-alt-square fa-lg mt-4"></i><br />share-alt-square2643              </Col>2644              <Col xs="6" sm="4" md="3" lg="2">2645                <i className="fa fa-shirtsinbulk fa-lg mt-4"></i><br />shirtsinbulk2646              </Col>2647              <Col xs="6" sm="4" md="3" lg="2">2648                <i className="fa fa-simplybuilt fa-lg mt-4"></i><br />simplybuilt2649              </Col>2650              <Col xs="6" sm="4" md="3" lg="2">2651                <i className="fa fa-skyatlas fa-lg mt-4"></i><br />skyatlas2652              </Col>2653              <Col xs="6" sm="4" md="3" lg="2">2654                <i className="fa fa-skype fa-lg mt-4"></i><br />skype2655              </Col>2656              <Col xs="6" sm="4" md="3" lg="2">2657                <i className="fa fa-slack fa-lg mt-4"></i><br />slack2658              </Col>2659              <Col xs="6" sm="4" md="3" lg="2">2660                <i className="fa fa-slideshare fa-lg mt-4"></i><br />slideshare2661              </Col>2662              <Col xs="6" sm="4" md="3" lg="2">2663                <i className="fa fa-soundcloud fa-lg mt-4"></i><br />soundcloud2664              </Col>2665              <Col xs="6" sm="4" md="3" lg="2">2666                <i className="fa fa-spotify fa-lg mt-4"></i><br />spotify2667              </Col>2668              <Col xs="6" sm="4" md="3" lg="2">2669                <i className="fa fa-stack-exchange fa-lg mt-4"></i><br />stack-exchange2670              </Col>2671              <Col xs="6" sm="4" md="3" lg="2">2672                <i className="fa fa-stack-overflow fa-lg mt-4"></i><br />stack-overflow2673              </Col>2674              <Col xs="6" sm="4" md="3" lg="2">2675                <i className="fa fa-steam fa-lg mt-4"></i><br />steam2676              </Col>2677              <Col xs="6" sm="4" md="3" lg="2">2678                <i className="fa fa-steam-square fa-lg mt-4"></i><br />steam-square2679              </Col>2680              <Col xs="6" sm="4" md="3" lg="2">2681                <i className="fa fa-stumbleupon fa-lg mt-4"></i><br />stumbleupon2682              </Col>2683              <Col xs="6" sm="4" md="3" lg="2">2684                <i className="fa fa-stumbleupon-circle fa-lg mt-4"></i><br />stumbleupon-circle2685              </Col>2686              <Col xs="6" sm="4" md="3" lg="2">2687                <i className="fa fa-tencent-weibo fa-lg mt-4"></i><br />tencent-weibo2688              </Col>2689              <Col xs="6" sm="4" md="3" lg="2">2690                <i className="fa fa-trello fa-lg mt-4"></i><br />trello2691              </Col>2692              <Col xs="6" sm="4" md="3" lg="2">2693                <i className="fa fa-tripadvisor fa-lg mt-4"></i><br />tripadvisor2694              </Col>2695              <Col xs="6" sm="4" md="3" lg="2">2696                <i className="fa fa-tumblr fa-lg mt-4"></i><br />tumblr2697              </Col>2698              <Col xs="6" sm="4" md="3" lg="2">2699                <i className="fa fa-tumblr-square fa-lg mt-4"></i><br />tumblr-square2700              </Col>2701              <Col xs="6" sm="4" md="3" lg="2">2702                <i className="fa fa-twitch fa-lg mt-4"></i><br />twitch2703              </Col>2704              <Col xs="6" sm="4" md="3" lg="2">2705                <i className="fa fa-twitter fa-lg mt-4"></i><br />twitter2706              </Col>2707              <Col xs="6" sm="4" md="3" lg="2">2708                <i className="fa fa-twitter-square fa-lg mt-4"></i><br />twitter-square2709              </Col>2710              <Col xs="6" sm="4" md="3" lg="2">2711                <i className="fa fa-usb fa-lg mt-4"></i><br />usb2712              </Col>2713              <Col xs="6" sm="4" md="3" lg="2">2714                <i className="fa fa-viacoin fa-lg mt-4"></i><br />viacoin2715              </Col>2716              <Col xs="6" sm="4" md="3" lg="2">2717                <i className="fa fa-vimeo fa-lg mt-4"></i><br />vimeo2718              </Col>2719              <Col xs="6" sm="4" md="3" lg="2">2720                <i className="fa fa-vimeo-square fa-lg mt-4"></i><br />vimeo-square2721              </Col>2722              <Col xs="6" sm="4" md="3" lg="2">2723                <i className="fa fa-vine fa-lg mt-4"></i><br />vine2724              </Col>2725              <Col xs="6" sm="4" md="3" lg="2">2726                <i className="fa fa-vk fa-lg mt-4"></i><br />vk2727              </Col>2728              <Col xs="6" sm="4" md="3" lg="2">2729                <i className="fa fa-wechat fa-lg mt-4"></i><br />wechat <span className="text-muted">(alias)</span>2730              </Col>2731              <Col xs="6" sm="4" md="3" lg="2">2732                <i className="fa fa-weibo fa-lg mt-4"></i><br />weibo2733              </Col>2734              <Col xs="6" sm="4" md="3" lg="2">2735                <i className="fa fa-weixin fa-lg mt-4"></i><br />weixin2736              </Col>2737              <Col xs="6" sm="4" md="3" lg="2">2738                <i className="fa fa-whatsapp fa-lg mt-4"></i><br />whatsapp2739              </Col>2740              <Col xs="6" sm="4" md="3" lg="2">2741                <i className="fa fa-wikipedia-w fa-lg mt-4"></i><br />wikipedia-w2742              </Col>2743              <Col xs="6" sm="4" md="3" lg="2">2744                <i className="fa fa-windows fa-lg mt-4"></i><br />windows2745              </Col>2746              <Col xs="6" sm="4" md="3" lg="2">2747                <i className="fa fa-wordpress fa-lg mt-4"></i><br />wordpress2748              </Col>2749              <Col xs="6" sm="4" md="3" lg="2">2750                <i className="fa fa-xing fa-lg mt-4"></i><br />xing2751              </Col>2752              <Col xs="6" sm="4" md="3" lg="2">2753                <i className="fa fa-xing-square fa-lg mt-4"></i><br />xing-square2754              </Col>2755              <Col xs="6" sm="4" md="3" lg="2">2756                <i className="fa fa-y-combinator fa-lg mt-4"></i><br />y-combinator2757              </Col>2758              <Col xs="6" sm="4" md="3" lg="2">2759                <i className="fa fa-y-combinator-square fa-lg mt-4"></i><br />y-combinator-square <span2760                className="text-muted">(alias)</span>2761              </Col>2762              <Col xs="6" sm="4" md="3" lg="2">2763                <i className="fa fa-yahoo fa-lg mt-4"></i><br />yahoo2764              </Col>2765              <Col xs="6" sm="4" md="3" lg="2">2766                <i className="fa fa-yc fa-lg mt-4"></i><br />yc <span className="text-muted">(alias)</span>2767              </Col>2768              <Col xs="6" sm="4" md="3" lg="2">2769                <i className="fa fa-yc-square fa-lg mt-4"></i><br />yc-square <span className="text-muted">(alias)</span>2770              </Col>2771              <Col xs="6" sm="4" md="3" lg="2">2772                <i className="fa fa-yelp fa-lg mt-4"></i><br />yelp2773              </Col>2774              <Col xs="6" sm="4" md="3" lg="2">2775                <i className="fa fa-youtube fa-lg mt-4"></i><br />youtube2776              </Col>2777              <Col xs="6" sm="4" md="3" lg="2">2778                <i className="fa fa-youtube-play fa-lg mt-4"></i><br />youtube-play2779              </Col>2780              <Col xs="6" sm="4" md="3" lg="2">2781                <i className="fa fa-youtube-square fa-lg mt-4"></i><br />youtube-square2782              </Col>2783            </Row>2784            <Alert color="success" className="mt-4">2785              <ul className="margin-bottom-none padding-left-lg">2786                <li>All brand icons are trademarks of their respective owners.</li>2787                <li>The use of these trademarks does not indicate endorsement of the trademark holder by Font Awesome,2788                  nor vice versa.2789                </li>2790                <li>Brand icons should only be used to represent the company or product to which they refer.</li>2791              </ul>2792            </Alert>2793          </CardBody>2794        </Card>2795        <Card id="medical">2796          <CardHeader>Medical Icons</CardHeader>2797          <CardBody>2798            <Row className="text-center">2799              <Col xs="6" sm="4" md="3" lg="2">2800                <i className="fa fa-ambulance fa-lg mt-4"></i><br />ambulance2801              </Col>2802              <Col xs="6" sm="4" md="3" lg="2">2803                <i className="fa fa-h-square fa-lg mt-4"></i><br />h-square2804              </Col>2805              <Col xs="6" sm="4" md="3" lg="2">2806                <i className="fa fa-heart fa-lg mt-4"></i><br />heart2807              </Col>2808              <Col xs="6" sm="4" md="3" lg="2">2809                <i className="fa fa-heart-o fa-lg mt-4"></i><br />heart-o2810              </Col>2811              <Col xs="6" sm="4" md="3" lg="2">2812                <i className="fa fa-heartbeat fa-lg mt-4"></i><br />heartbeat2813              </Col>2814              <Col xs="6" sm="4" md="3" lg="2">2815                <i className="fa fa-hospital-o fa-lg mt-4"></i><br />hospital-o2816              </Col>2817              <Col xs="6" sm="4" md="3" lg="2">2818                <i className="fa fa-medkit fa-lg mt-4"></i><br />medkit2819              </Col>2820              <Col xs="6" sm="4" md="3" lg="2">2821                <i className="fa fa-plus-square fa-lg mt-4"></i><br />plus-square2822              </Col>2823              <Col xs="6" sm="4" md="3" lg="2">2824                <i className="fa fa-stethoscope fa-lg mt-4"></i><br />stethoscope2825              </Col>2826              <Col xs="6" sm="4" md="3" lg="2">2827                <i className="fa fa-user-md fa-lg mt-4"></i><br />user-md2828              </Col>2829              <Col xs="6" sm="4" md="3" lg="2">2830                <i className="fa fa-wheelchair fa-lg mt-4"></i><br />wheelchair2831              </Col>2832            </Row>2833          </CardBody>2834        </Card>2835      </div>2836    );2837  }2838}...lightgallery-all.js
Source:lightgallery-all.js  
1/*! lightgallery - v1.2.21 - 2016-06-282* http://sachinchoolur.github.io/lightGallery/3* Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */4(function($, window, document, undefined) {5    'use strict';6    var defaults = {7        mode: 'lg-slide',8        // Ex : 'ease'9        cssEasing: 'ease',10        //'for jquery animation'11        easing: 'linear',12        speed: 600,13        height: '100%',14        width: '100%',15        addClass: '',16        startClass: 'lg-start-zoom',17        backdropDuration: 150,18        hideBarsDelay: 6000,19        useLeft: false,20        closable: true,21        loop: true,22        escKey: true,23        keyPress: true,24        controls: true,25        slideEndAnimatoin: true,26        hideControlOnEnd: false,27        mousewheel: true,28        getCaptionFromTitleOrAlt: true,29        // .lg-item || '.lg-sub-html'30        appendSubHtmlTo: '.lg-sub-html',31        subHtmlSelectorRelative: false,32        /**33         * @desc number of preload slides34         * will exicute only after the current slide is fully loaded.35         *36         * @ex you clicked on 4th image and if preload = 1 then 3rd slide and 5th37         * slide will be loaded in the background after the 4th slide is fully loaded..38         * if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ...39         *40         */41        preload: 1,42        showAfterLoad: true,43        selector: '',44        selectWithin: '',45        nextHtml: '',46        prevHtml: '',47        // 0, 148        index: false,49        iframeMaxWidth: '100%',50        download: true,51        counter: true,52        appendCounterTo: '.lg-toolbar',53        swipeThreshold: 50,54        enableSwipe: true,55        enableDrag: true,56        dynamic: false,57        dynamicEl: [],58        galleryId: 159    };60    function Plugin(element, options) {61        // Current lightGallery element62        this.el = element;63        // Current jquery element64        this.$el = $(element);65        // lightGallery settings66        this.s = $.extend({}, defaults, options);67        // When using dynamic mode, ensure dynamicEl is an array68        if (this.s.dynamic && this.s.dynamicEl !== 'undefined' && this.s.dynamicEl.constructor === Array && !this.s.dynamicEl.length) {69            throw ('When using dynamic mode, you must also define dynamicEl as an Array.');70        }71        // lightGallery modules72        this.modules = {};73        // false when lightgallery complete first slide;74        this.lGalleryOn = false;75        this.lgBusy = false;76        // Timeout function for hiding controls;77        this.hideBartimeout = false;78        // To determine browser supports for touch events;79        this.isTouch = ('ontouchstart' in document.documentElement);80        // Disable hideControlOnEnd if sildeEndAnimation is true81        if (this.s.slideEndAnimatoin) {82            this.s.hideControlOnEnd = false;83        }84        // Gallery items85        if (this.s.dynamic) {86            this.$items = this.s.dynamicEl;87        } else {88            if (this.s.selector === 'this') {89                this.$items = this.$el;90            } else if (this.s.selector !== '') {91                if (this.s.selectWithin) {92                    this.$items = $(this.s.selectWithin).find(this.s.selector);93                } else {94                    this.$items = this.$el.find($(this.s.selector));95                }96            } else {97                this.$items = this.$el.children();98            }99        }100        // .lg-item101        this.$slide = '';102        // .lg-outer103        this.$outer = '';104        this.init();105        return this;106    }107    Plugin.prototype.init = function() {108        var _this = this;109        // s.preload should not be more than $item.length110        if (_this.s.preload > _this.$items.length) {111            _this.s.preload = _this.$items.length;112        }113        // if dynamic option is enabled execute immediately114        var _hash = window.location.hash;115        if (_hash.indexOf('lg=' + this.s.galleryId) > 0) {116            _this.index = parseInt(_hash.split('&slide=')[1], 10);117            $('body').addClass('lg-from-hash');118            if (!$('body').hasClass('lg-on')) {119                setTimeout(function() {120                    _this.build(_this.index);121                    $('body').addClass('lg-on');122                });123            }124        }125        if (_this.s.dynamic) {126            _this.$el.trigger('onBeforeOpen.lg');127            _this.index = _this.s.index || 0;128            // prevent accidental double execution129            if (!$('body').hasClass('lg-on')) {130                setTimeout(function() {131                    _this.build(_this.index);132                    $('body').addClass('lg-on');133                });134            }135        } else {136            // Using different namespace for click because click event should not unbind if selector is same object('this')137            _this.$items.on('click.lgcustom', function(event) {138                // For IE8139                try {140                    event.preventDefault();141                    event.preventDefault();142                } catch (er) {143                    event.returnValue = false;144                }145                _this.$el.trigger('onBeforeOpen.lg');146                _this.index = _this.s.index || _this.$items.index(this);147                // prevent accidental double execution148                if (!$('body').hasClass('lg-on')) {149                    _this.build(_this.index);150                    $('body').addClass('lg-on');151                }152            });153        }154    };155    Plugin.prototype.build = function(index) {156        var _this = this;157        _this.structure();158        // module constructor159        $.each($.fn.lightGallery.modules, function(key) {160            _this.modules[key] = new $.fn.lightGallery.modules[key](_this.el);161        });162        // initiate slide function163        _this.slide(index, false, false);164        if (_this.s.keyPress) {165            _this.keyPress();166        }167        if (_this.$items.length > 1) {168            _this.arrow();169            setTimeout(function() {170                _this.enableDrag();171                _this.enableSwipe();172            }, 50);173            if (_this.s.mousewheel) {174                _this.mousewheel();175            }176        }177        _this.counter();178        _this.closeGallery();179        _this.$el.trigger('onAfterOpen.lg');180        // Hide controllers if mouse doesn't move for some period181        _this.$outer.on('mousemove.lg click.lg touchstart.lg', function() {182            _this.$outer.removeClass('lg-hide-items');183            clearTimeout(_this.hideBartimeout);184            // Timeout will be cleared on each slide movement also185            _this.hideBartimeout = setTimeout(function() {186                _this.$outer.addClass('lg-hide-items');187            }, _this.s.hideBarsDelay);188        });189    };190    Plugin.prototype.structure = function() {191        var list = '';192        var controls = '';193        var i = 0;194        var subHtmlCont = '';195        var template;196        var _this = this;197        $('body').append('<div class="lg-backdrop"></div>');198        $('.lg-backdrop').css('transition-duration', this.s.backdropDuration + 'ms');199        // Create gallery items200        for (i = 0; i < this.$items.length; i++) {201            list += '<div class="lg-item"></div>';202        }203        // Create controlls204        if (this.s.controls && this.$items.length > 1) {205            controls = '<div class="lg-actions">' +206                '<div class="lg-prev lg-icon">' + this.s.prevHtml + '</div>' +207                '<div class="lg-next lg-icon">' + this.s.nextHtml + '</div>' +208                '</div>';209        }210        if (this.s.appendSubHtmlTo === '.lg-sub-html') {211            subHtmlCont = '<div class="lg-sub-html"></div>';212        }213        template = '<div class="lg-outer ' + this.s.addClass + ' ' + this.s.startClass + '">' +214            '<div class="lg" style="width:' + this.s.width + '; height:' + this.s.height + '">' +215            '<div class="lg-inner">' + list + '</div>' +216            '<div class="lg-toolbar group">' +217            '<span class="lg-close lg-icon"></span>' +218            '</div>' +219            controls +220            subHtmlCont +221            '</div>' +222            '</div>';223        $('body').append(template);224        this.$outer = $('.lg-outer');225        this.$slide = this.$outer.find('.lg-item');226        if (this.s.useLeft) {227            this.$outer.addClass('lg-use-left');228            // Set mode lg-slide if use left is true;229            this.s.mode = 'lg-slide';230        } else {231            this.$outer.addClass('lg-use-css3');232        }233        // For fixed height gallery234        _this.setTop();235        $(window).on('resize.lg orientationchange.lg', function() {236            setTimeout(function() {237                _this.setTop();238            }, 100);239        });240        // add class lg-current to remove initial transition241        this.$slide.eq(this.index).addClass('lg-current');242        // add Class for css support and transition mode243        if (this.doCss()) {244            this.$outer.addClass('lg-css3');245        } else {246            this.$outer.addClass('lg-css');247            // Set speed 0 because no animation will happen if browser doesn't support css3248            this.s.speed = 0;249        }250        this.$outer.addClass(this.s.mode);251        if (this.s.enableDrag && this.$items.length > 1) {252            this.$outer.addClass('lg-grab');253        }254        if (this.s.showAfterLoad) {255            this.$outer.addClass('lg-show-after-load');256        }257        if (this.doCss()) {258            var $inner = this.$outer.find('.lg-inner');259            $inner.css('transition-timing-function', this.s.cssEasing);260            $inner.css('transition-duration', this.s.speed + 'ms');261        }262        $('.lg-backdrop').addClass('in');263        setTimeout(function() {264            _this.$outer.addClass('lg-visible');265        }, this.s.backdropDuration);266        if (this.s.download) {267            this.$outer.find('.lg-toolbar').append('<a id="lg-download" target="_blank" download class="lg-download lg-icon"></a>');268        }269        // Store the current scroll top value to scroll back after closing the gallery..270        this.prevScrollTop = $(window).scrollTop();271    };272    // For fixed height gallery273    Plugin.prototype.setTop = function() {274        if (this.s.height !== '100%') {275            var wH = $(window).height();276            var top = (wH - parseInt(this.s.height, 10)) / 2;277            var $lGallery = this.$outer.find('.lg');278            if (wH >= parseInt(this.s.height, 10)) {279                $lGallery.css('top', top + 'px');280            } else {281                $lGallery.css('top', '0px');282            }283        }284    };285    // Find css3 support286    Plugin.prototype.doCss = function() {287        // check for css animation support288        var support = function() {289            var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];290            var root = document.documentElement;291            var i = 0;292            for (i = 0; i < transition.length; i++) {293                if (transition[i] in root.style) {294                    return true;295                }296            }297        };298        if (support()) {299            return true;300        }301        return false;302    };303    /**304     *  @desc Check the given src is video305     *  @param {String} src306     *  @return {Object} video type307     *  Ex:{ youtube  :  ["//www.youtube.com/watch?v=c0asJgSyxcY", "c0asJgSyxcY"] }308     */309    Plugin.prototype.isVideo = function(src, index) {310        var html;311        if (this.s.dynamic) {312            html = this.s.dynamicEl[index].html;313        } else {314            html = this.$items.eq(index).attr('data-html');315        }316        if (!src && html) {317            return {318                html5: true319            };320        }321        var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i);322        var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i);323        var dailymotion = src.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i);324        var vk = src.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);325        if (youtube) {326            return {327                youtube: youtube328            };329        } else if (vimeo) {330            return {331                vimeo: vimeo332            };333        } else if (dailymotion) {334            return {335                dailymotion: dailymotion336            };337        } else if (vk) {338            return {339                vk: vk340            };341        }342    };343    /**344     *  @desc Create image counter345     *  Ex: 1/10346     */347    Plugin.prototype.counter = function() {348        if (this.s.counter) {349            $(this.s.appendCounterTo).append('<div id="lg-counter"><span id="lg-counter-current">' + (parseInt(this.index, 10) + 1) + '</span> / <span id="lg-counter-all">' + this.$items.length + '</span></div>');350        }351    };352    /**353     *  @desc add sub-html into the slide354     *  @param {Number} index - index of the slide355     */356    Plugin.prototype.addHtml = function(index) {357        var subHtml = null;358        var subHtmlUrl;359        var $currentEle;360        if (this.s.dynamic) {361            if (this.s.dynamicEl[index].subHtmlUrl) {362                subHtmlUrl = this.s.dynamicEl[index].subHtmlUrl;363            } else {364                subHtml = this.s.dynamicEl[index].subHtml;365            }366        } else {367            $currentEle = this.$items.eq(index);368            if ($currentEle.attr('data-sub-html-url')) {369                subHtmlUrl = $currentEle.attr('data-sub-html-url');370            } else {371                subHtml = $currentEle.attr('data-sub-html');372                if (this.s.getCaptionFromTitleOrAlt && !subHtml) {373                    subHtml = $currentEle.attr('title') || $currentEle.find('img').first().attr('alt');374                }375            }376        }377        if (!subHtmlUrl) {378            if (typeof subHtml !== 'undefined' && subHtml !== null) {379                // get first letter of subhtml380                // if first letter starts with . or # get the html form the jQuery object381                var fL = subHtml.substring(0, 1);382                if (fL === '.' || fL === '#') {383                    if (this.s.subHtmlSelectorRelative && !this.s.dynamic) {384                        subHtml = $currentEle.find(subHtml).html();385                    } else {386                        subHtml = $(subHtml).html();387                    }388                }389            } else {390                subHtml = '';391            }392        }393        if (this.s.appendSubHtmlTo === '.lg-sub-html') {394            if (subHtmlUrl) {395                this.$outer.find(this.s.appendSubHtmlTo).load(subHtmlUrl);396            } else {397                this.$outer.find(this.s.appendSubHtmlTo).html(subHtml);398            }399        } else {400            if (subHtmlUrl) {401                this.$slide.eq(index).load(subHtmlUrl);402            } else {403                this.$slide.eq(index).append(subHtml);404            }405        }406        // Add lg-empty-html class if title doesn't exist407        if (typeof subHtml !== 'undefined' && subHtml !== null) {408            if (subHtml === '') {409                this.$outer.find(this.s.appendSubHtmlTo).addClass('lg-empty-html');410            } else {411                this.$outer.find(this.s.appendSubHtmlTo).removeClass('lg-empty-html');412            }413        }414        this.$el.trigger('onAfterAppendSubHtml.lg', [index]);415    };416    /**417     *  @desc Preload slides418     *  @param {Number} index - index of the slide419     */420    Plugin.prototype.preload = function(index) {421        var i = 1;422        var j = 1;423        for (i = 1; i <= this.s.preload; i++) {424            if (i >= this.$items.length - index) {425                break;426            }427            this.loadContent(index + i, false, 0);428        }429        for (j = 1; j <= this.s.preload; j++) {430            if (index - j < 0) {431                break;432            }433            this.loadContent(index - j, false, 0);434        }435    };436    /**437     *  @desc Load slide content into slide.438     *  @param {Number} index - index of the slide.439     *  @param {Boolean} rec - if true call loadcontent() function again.440     *  @param {Boolean} delay - delay for adding complete class. it is 0 except first time.441     */442    Plugin.prototype.loadContent = function(index, rec, delay) {443        var _this = this;444        var _hasPoster = false;445        var _$img;446        var _src;447        var _poster;448        var _srcset;449        var _sizes;450        var _html;451        var getResponsiveSrc = function(srcItms) {452            var rsWidth = [];453            var rsSrc = [];454            for (var i = 0; i < srcItms.length; i++) {455                var __src = srcItms[i].split(' ');456                // Manage empty space457                if (__src[0] === '') {458                    __src.splice(0, 1);459                }460                rsSrc.push(__src[0]);461                rsWidth.push(__src[1]);462            }463            var wWidth = $(window).width();464            for (var j = 0; j < rsWidth.length; j++) {465                if (parseInt(rsWidth[j], 10) > wWidth) {466                    _src = rsSrc[j];467                    break;468                }469            }470        };471        if (_this.s.dynamic) {472            if (_this.s.dynamicEl[index].poster) {473                _hasPoster = true;474                _poster = _this.s.dynamicEl[index].poster;475            }476            _html = _this.s.dynamicEl[index].html;477            _src = _this.s.dynamicEl[index].src;478            if (_this.s.dynamicEl[index].responsive) {479                var srcDyItms = _this.s.dynamicEl[index].responsive.split(',');480                getResponsiveSrc(srcDyItms);481            }482            _srcset = _this.s.dynamicEl[index].srcset;483            _sizes = _this.s.dynamicEl[index].sizes;484        } else {485            if (_this.$items.eq(index).attr('data-poster')) {486                _hasPoster = true;487                _poster = _this.$items.eq(index).attr('data-poster');488            }489            _html = _this.$items.eq(index).attr('data-html');490            _src = _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src');491            if (_this.$items.eq(index).attr('data-responsive')) {492                var srcItms = _this.$items.eq(index).attr('data-responsive').split(',');493                getResponsiveSrc(srcItms);494            }495            _srcset = _this.$items.eq(index).attr('data-srcset');496            _sizes = _this.$items.eq(index).attr('data-sizes');497        }498        //if (_src || _srcset || _sizes || _poster) {499        var iframe = false;500        if (_this.s.dynamic) {501            if (_this.s.dynamicEl[index].iframe) {502                iframe = true;503            }504        } else {505            if (_this.$items.eq(index).attr('data-iframe') === 'true') {506                iframe = true;507            }508        }509        var _isVideo = _this.isVideo(_src, index);510        if (!_this.$slide.eq(index).hasClass('lg-loaded')) {511            if (iframe) {512                _this.$slide.eq(index).prepend('<div class="lg-video-cont" style="max-width:' + _this.s.iframeMaxWidth + '"><div class="lg-video"><iframe class="lg-object" frameborder="0" src="' + _src + '"  allowfullscreen="true"></iframe></div></div>');513            } else if (_hasPoster) {514                var videoClass = '';515                if (_isVideo && _isVideo.youtube) {516                    videoClass = 'lg-has-youtube';517                } else if (_isVideo && _isVideo.vimeo) {518                    videoClass = 'lg-has-vimeo';519                } else {520                    videoClass = 'lg-has-html5';521                }522                _this.$slide.eq(index).prepend('<div class="lg-video-cont ' + videoClass + ' "><div class="lg-video"><span class="lg-video-play"></span><img class="lg-object lg-has-poster" src="' + _poster + '" /></div></div>');523            } else if (_isVideo) {524                _this.$slide.eq(index).prepend('<div class="lg-video-cont "><div class="lg-video"></div></div>');525                _this.$el.trigger('hasVideo.lg', [index, _src, _html]);526            } else {527                _this.$slide.eq(index).prepend('<div class="lg-img-wrap"><img class="lg-object lg-image" src="' + _src + '" /></div>');528            }529            _this.$el.trigger('onAferAppendSlide.lg', [index]);530            _$img = _this.$slide.eq(index).find('.lg-object');531            if (_sizes) {532                _$img.attr('sizes', _sizes);533            }534            if (_srcset) {535                _$img.attr('srcset', _srcset);536                try {537                    picturefill({538                        elements: [_$img[0]]539                    });540                } catch (e) {541                    console.error('Make sure you have included Picturefill version 2');542                }543            }544            if (this.s.appendSubHtmlTo !== '.lg-sub-html') {545                _this.addHtml(index);546            }547            _this.$slide.eq(index).addClass('lg-loaded');548        }549        _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() {550            // For first time add some delay for displaying the start animation.551            var _speed = 0;552            // Do not change the delay value because it is required for zoom plugin.553            // If gallery opened from direct url (hash) speed value should be 0554            if (delay && !$('body').hasClass('lg-from-hash')) {555                _speed = delay;556            }557            setTimeout(function() {558                _this.$slide.eq(index).addClass('lg-complete');559                _this.$el.trigger('onSlideItemLoad.lg', [index, delay || 0]);560            }, _speed);561        });562        // @todo check load state for html5 videos563        if (_isVideo && _isVideo.html5 && !_hasPoster) {564            _this.$slide.eq(index).addClass('lg-complete');565        }566        if (rec === true) {567            if (!_this.$slide.eq(index).hasClass('lg-complete')) {568                _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() {569                    _this.preload(index);570                });571            } else {572                _this.preload(index);573            }574        }575        //}576    };577    /**578    *   @desc slide function for lightgallery579        ** Slide() gets call on start580        ** ** Set lg.on true once slide() function gets called.581        ** Call loadContent() on slide() function inside setTimeout582        ** ** On first slide we do not want any animation like slide of fade583        ** ** So on first slide( if lg.on if false that is first slide) loadContent() should start loading immediately584        ** ** Else loadContent() should wait for the transition to complete.585        ** ** So set timeout s.speed + 50586    <=> ** loadContent() will load slide content in to the particular slide587        ** ** It has recursion (rec) parameter. if rec === true loadContent() will call preload() function.588        ** ** preload will execute only when the previous slide is fully loaded (images iframe)589        ** ** avoid simultaneous image load590    <=> ** Preload() will check for s.preload value and call loadContent() again accoring to preload value591        ** loadContent()  <====> Preload();592    *   @param {Number} index - index of the slide593    *   @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag594    *   @param {Boolean} fromThumb - true if slide function called via thumbnail click595    */596    Plugin.prototype.slide = function(index, fromTouch, fromThumb) {597        var _prevIndex = this.$outer.find('.lg-current').index();598        var _this = this;599        // Prevent if multiple call600        // Required for hsh plugin601        if (_this.lGalleryOn && (_prevIndex === index)) {602            return;603        }604        var _length = this.$slide.length;605        var _time = _this.lGalleryOn ? this.s.speed : 0;606        var _next = false;607        var _prev = false;608        if (!_this.lgBusy) {609            if (this.s.download) {610                var _src;611                if (_this.s.dynamic) {612                    _src = _this.s.dynamicEl[index].downloadUrl !== false && (_this.s.dynamicEl[index].downloadUrl || _this.s.dynamicEl[index].src);613                } else {614                    _src = _this.$items.eq(index).attr('data-download-url') !== 'false' && (_this.$items.eq(index).attr('data-download-url') || _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src'));615                }616                if (_src) {617                    $('#lg-download').attr('href', _src);618                    _this.$outer.removeClass('lg-hide-download');619                } else {620                    _this.$outer.addClass('lg-hide-download');621                }622            }623            this.$el.trigger('onBeforeSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);624            _this.lgBusy = true;625            clearTimeout(_this.hideBartimeout);626            // Add title if this.s.appendSubHtmlTo === lg-sub-html627            if (this.s.appendSubHtmlTo === '.lg-sub-html') {628                // wait for slide animation to complete629                setTimeout(function() {630                    _this.addHtml(index);631                }, _time);632            }633            this.arrowDisable(index);634            if (!fromTouch) {635                // remove all transitions636                _this.$outer.addClass('lg-no-trans');637                this.$slide.removeClass('lg-prev-slide lg-next-slide');638                if (index < _prevIndex) {639                    _prev = true;640                    if ((index === 0) && (_prevIndex === _length - 1) && !fromThumb) {641                        _prev = false;642                        _next = true;643                    }644                } else if (index > _prevIndex) {645                    _next = true;646                    if ((index === _length - 1) && (_prevIndex === 0) && !fromThumb) {647                        _prev = true;648                        _next = false;649                    }650                }651                if (_prev) {652                    //prevslide653                    this.$slide.eq(index).addClass('lg-prev-slide');654                    this.$slide.eq(_prevIndex).addClass('lg-next-slide');655                } else if (_next) {656                    // next slide657                    this.$slide.eq(index).addClass('lg-next-slide');658                    this.$slide.eq(_prevIndex).addClass('lg-prev-slide');659                }660                // give 50 ms for browser to add/remove class661                setTimeout(function() {662                    _this.$slide.removeClass('lg-current');663                    //_this.$slide.eq(_prevIndex).removeClass('lg-current');664                    _this.$slide.eq(index).addClass('lg-current');665                    // reset all transitions666                    _this.$outer.removeClass('lg-no-trans');667                }, 50);668            } else {669                var touchPrev = index - 1;670                var touchNext = index + 1;671                if ((index === 0) && (_prevIndex === _length - 1)) {672                    // next slide673                    touchNext = 0;674                    touchPrev = _length - 1;675                } else if ((index === _length - 1) && (_prevIndex === 0)) {676                    // prev slide677                    touchNext = 0;678                    touchPrev = _length - 1;679                }680                this.$slide.removeClass('lg-prev-slide lg-current lg-next-slide');681                _this.$slide.eq(touchPrev).addClass('lg-prev-slide');682                _this.$slide.eq(touchNext).addClass('lg-next-slide');683                _this.$slide.eq(index).addClass('lg-current');684            }685            if (_this.lGalleryOn) {686                setTimeout(function() {687                    _this.loadContent(index, true, 0);688                }, this.s.speed + 50);689                setTimeout(function() {690                    _this.lgBusy = false;691                    _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);692                }, this.s.speed);693            } else {694                _this.loadContent(index, true, _this.s.backdropDuration);695                _this.lgBusy = false;696                _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);697            }698            _this.lGalleryOn = true;699            if (this.s.counter) {700                $('#lg-counter-current').text(index + 1);701            }702        }703    };704    /**705     *  @desc Go to next slide706     *  @param {Boolean} fromTouch - true if slide function called via touch event707     */708    Plugin.prototype.goToNextSlide = function(fromTouch) {709        var _this = this;710        if (!_this.lgBusy) {711            if ((_this.index + 1) < _this.$slide.length) {712                _this.index++;713                _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]);714                _this.slide(_this.index, fromTouch, false);715            } else {716                if (_this.s.loop) {717                    _this.index = 0;718                    _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]);719                    _this.slide(_this.index, fromTouch, false);720                } else if (_this.s.slideEndAnimatoin) {721                    _this.$outer.addClass('lg-right-end');722                    setTimeout(function() {723                        _this.$outer.removeClass('lg-right-end');724                    }, 400);725                }726            }727        }728    };729    /**730     *  @desc Go to previous slide731     *  @param {Boolean} fromTouch - true if slide function called via touch event732     */733    Plugin.prototype.goToPrevSlide = function(fromTouch) {734        var _this = this;735        if (!_this.lgBusy) {736            if (_this.index > 0) {737                _this.index--;738                _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]);739                _this.slide(_this.index, fromTouch, false);740            } else {741                if (_this.s.loop) {742                    _this.index = _this.$items.length - 1;743                    _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]);744                    _this.slide(_this.index, fromTouch, false);745                } else if (_this.s.slideEndAnimatoin) {746                    _this.$outer.addClass('lg-left-end');747                    setTimeout(function() {748                        _this.$outer.removeClass('lg-left-end');749                    }, 400);750                }751            }752        }753    };754    Plugin.prototype.keyPress = function() {755        var _this = this;756        if (this.$items.length > 1) {757            $(window).on('keyup.lg', function(e) {758                if (_this.$items.length > 1) {759                    if (e.keyCode === 37) {760                        e.preventDefault();761                        _this.goToPrevSlide();762                    }763                    if (e.keyCode === 39) {764                        e.preventDefault();765                        _this.goToNextSlide();766                    }767                }768            });769        }770        $(window).on('keydown.lg', function(e) {771            if (_this.s.escKey === true && e.keyCode === 27) {772                e.preventDefault();773                if (!_this.$outer.hasClass('lg-thumb-open')) {774                    _this.destroy();775                } else {776                    _this.$outer.removeClass('lg-thumb-open');777                }778            }779        });780    };781    Plugin.prototype.arrow = function() {782        var _this = this;783        this.$outer.find('.lg-prev').on('click.lg', function() {784            _this.goToPrevSlide();785        });786        this.$outer.find('.lg-next').on('click.lg', function() {787            _this.goToNextSlide();788        });789    };790    Plugin.prototype.arrowDisable = function(index) {791        // Disable arrows if s.hideControlOnEnd is true792        if (!this.s.loop && this.s.hideControlOnEnd) {793            if ((index + 1) < this.$slide.length) {794                this.$outer.find('.lg-next').removeAttr('disabled').removeClass('disabled');795            } else {796                this.$outer.find('.lg-next').attr('disabled', 'disabled').addClass('disabled');797            }798            if (index > 0) {799                this.$outer.find('.lg-prev').removeAttr('disabled').removeClass('disabled');800            } else {801                this.$outer.find('.lg-prev').attr('disabled', 'disabled').addClass('disabled');802            }803        }804    };805    Plugin.prototype.setTranslate = function($el, xValue, yValue) {806        // jQuery supports Automatic CSS prefixing since jQuery 1.8.0807        if (this.s.useLeft) {808            $el.css('left', xValue);809        } else {810            $el.css({811                transform: 'translate3d(' + (xValue) + 'px, ' + yValue + 'px, 0px)'812            });813        }814    };815    Plugin.prototype.touchMove = function(startCoords, endCoords) {816        var distance = endCoords - startCoords;817        if (Math.abs(distance) > 15) {818            // reset opacity and transition duration819            this.$outer.addClass('lg-dragging');820            // move current slide821            this.setTranslate(this.$slide.eq(this.index), distance, 0);822            // move next and prev slide with current slide823            this.setTranslate($('.lg-prev-slide'), -this.$slide.eq(this.index).width() + distance, 0);824            this.setTranslate($('.lg-next-slide'), this.$slide.eq(this.index).width() + distance, 0);825        }826    };827    Plugin.prototype.touchEnd = function(distance) {828        var _this = this;829        // keep slide animation for any mode while dragg/swipe830        if (_this.s.mode !== 'lg-slide') {831            _this.$outer.addClass('lg-slide');832        }833        this.$slide.not('.lg-current, .lg-prev-slide, .lg-next-slide').css('opacity', '0');834        // set transition duration835        setTimeout(function() {836            _this.$outer.removeClass('lg-dragging');837            if ((distance < 0) && (Math.abs(distance) > _this.s.swipeThreshold)) {838                _this.goToNextSlide(true);839            } else if ((distance > 0) && (Math.abs(distance) > _this.s.swipeThreshold)) {840                _this.goToPrevSlide(true);841            } else if (Math.abs(distance) < 5) {842                // Trigger click if distance is less than 5 pix843                _this.$el.trigger('onSlideClick.lg');844            }845            _this.$slide.removeAttr('style');846        });847        // remove slide class once drag/swipe is completed if mode is not slide848        setTimeout(function() {849            if (!_this.$outer.hasClass('lg-dragging') && _this.s.mode !== 'lg-slide') {850                _this.$outer.removeClass('lg-slide');851            }852        }, _this.s.speed + 100);853    };854    Plugin.prototype.enableSwipe = function() {855        var _this = this;856        var startCoords = 0;857        var endCoords = 0;858        var isMoved = false;859        if (_this.s.enableSwipe && _this.isTouch && _this.doCss()) {860            _this.$slide.on('touchstart.lg', function(e) {861                if (!_this.$outer.hasClass('lg-zoomed') && !_this.lgBusy) {862                    e.preventDefault();863                    _this.manageSwipeClass();864                    startCoords = e.originalEvent.targetTouches[0].pageX;865                }866            });867            _this.$slide.on('touchmove.lg', function(e) {868                if (!_this.$outer.hasClass('lg-zoomed')) {869                    e.preventDefault();870                    endCoords = e.originalEvent.targetTouches[0].pageX;871                    _this.touchMove(startCoords, endCoords);872                    isMoved = true;873                }874            });875            _this.$slide.on('touchend.lg', function() {876                if (!_this.$outer.hasClass('lg-zoomed')) {877                    if (isMoved) {878                        isMoved = false;879                        _this.touchEnd(endCoords - startCoords);880                    } else {881                        _this.$el.trigger('onSlideClick.lg');882                    }883                }884            });885        }886    };887    Plugin.prototype.enableDrag = function() {888        var _this = this;889        var startCoords = 0;890        var endCoords = 0;891        var isDraging = false;892        var isMoved = false;893        if (_this.s.enableDrag && !_this.isTouch && _this.doCss()) {894            _this.$slide.on('mousedown.lg', function(e) {895                // execute only on .lg-object896                if (!_this.$outer.hasClass('lg-zoomed')) {897                    if ($(e.target).hasClass('lg-object') || $(e.target).hasClass('lg-video-play')) {898                        e.preventDefault();899                        if (!_this.lgBusy) {900                            _this.manageSwipeClass();901                            startCoords = e.pageX;902                            isDraging = true;903                            // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723904                            _this.$outer.scrollLeft += 1;905                            _this.$outer.scrollLeft -= 1;906                            // *907                            _this.$outer.removeClass('lg-grab').addClass('lg-grabbing');908                            _this.$el.trigger('onDragstart.lg');909                        }910                    }911                }912            });913            $(window).on('mousemove.lg', function(e) {914                if (isDraging) {915                    isMoved = true;916                    endCoords = e.pageX;917                    _this.touchMove(startCoords, endCoords);918                    _this.$el.trigger('onDragmove.lg');919                }920            });921            $(window).on('mouseup.lg', function(e) {922                if (isMoved) {923                    isMoved = false;924                    _this.touchEnd(endCoords - startCoords);925                    _this.$el.trigger('onDragend.lg');926                } else if ($(e.target).hasClass('lg-object') || $(e.target).hasClass('lg-video-play')) {927                    _this.$el.trigger('onSlideClick.lg');928                }929                // Prevent execution on click930                if (isDraging) {931                    isDraging = false;932                    _this.$outer.removeClass('lg-grabbing').addClass('lg-grab');933                }934            });935        }936    };937    Plugin.prototype.manageSwipeClass = function() {938        var touchNext = this.index + 1;939        var touchPrev = this.index - 1;940        var length = this.$slide.length;941        if (this.s.loop) {942            if (this.index === 0) {943                touchPrev = length - 1;944            } else if (this.index === length - 1) {945                touchNext = 0;946            }947        }948        this.$slide.removeClass('lg-next-slide lg-prev-slide');949        if (touchPrev > -1) {950            this.$slide.eq(touchPrev).addClass('lg-prev-slide');951        }952        this.$slide.eq(touchNext).addClass('lg-next-slide');953    };954    Plugin.prototype.mousewheel = function() {955        var _this = this;956        _this.$outer.on('mousewheel.lg', function(e) {957            if (!e.deltaY) {958                return;959            }960            if (e.deltaY > 0) {961                _this.goToPrevSlide();962            } else {963                _this.goToNextSlide();964            }965            e.preventDefault();966        });967    };968    Plugin.prototype.closeGallery = function() {969        var _this = this;970        var mousedown = false;971        this.$outer.find('.lg-close').on('click.lg', function() {972            _this.destroy();973        });974        if (_this.s.closable) {975            // If you drag the slide and release outside gallery gets close on chrome976            // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer977            _this.$outer.on('mousedown.lg', function(e) {978                if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap')) {979                    mousedown = true;980                } else {981                    mousedown = false;982                }983            });984            _this.$outer.on('mouseup.lg', function(e) {985                if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap') && mousedown) {986                    if (!_this.$outer.hasClass('lg-dragging')) {987                        _this.destroy();988                    }989                }990            });991        }992    };993    Plugin.prototype.destroy = function(d) {994        var _this = this;995        if (!d) {996            _this.$el.trigger('onBeforeClose.lg');997        }998        $(window).scrollTop(_this.prevScrollTop);999        /**1000         * if d is false or undefined destroy will only close the gallery1001         * plugins instance remains with the element1002         *1003         * if d is true destroy will completely remove the plugin1004         */1005        if (d) {1006            if (!_this.s.dynamic) {1007                // only when not using dynamic mode is $items a jquery collection1008                this.$items.off('click.lg click.lgcustom');1009            }1010            $.removeData(_this.el, 'lightGallery');1011        }1012        // Unbind all events added by lightGallery1013        this.$el.off('.lg.tm');1014        // Distroy all lightGallery modules1015        $.each($.fn.lightGallery.modules, function(key) {1016            if (_this.modules[key]) {1017                _this.modules[key].destroy();1018            }1019        });1020        this.lGalleryOn = false;1021        clearTimeout(_this.hideBartimeout);1022        this.hideBartimeout = false;1023        $(window).off('.lg');1024        $('body').removeClass('lg-on lg-from-hash');1025        if (_this.$outer) {1026            _this.$outer.removeClass('lg-visible');1027        }1028        $('.lg-backdrop').removeClass('in');1029        setTimeout(function() {1030            if (_this.$outer) {1031                _this.$outer.remove();1032            }1033            $('.lg-backdrop').remove();1034            if (!d) {1035                _this.$el.trigger('onCloseAfter.lg');1036            }1037        }, _this.s.backdropDuration + 50);1038    };1039    $.fn.lightGallery = function(options) {1040        return this.each(function() {1041            if (!$.data(this, 'lightGallery')) {1042                $.data(this, 'lightGallery', new Plugin(this, options));1043            } else {1044                try {1045                    $(this).data('lightGallery').init();1046                } catch (err) {1047                    console.error('lightGallery has not initiated properly');1048                }1049            }1050        });1051    };1052    $.fn.lightGallery.modules = {};1053})(jQuery, window, document);1054/**1055 * Autoplay Plugin1056 * @version 1.2.01057 * @author Sachin N - @sachinchoolur1058 * @license MIT License (MIT)1059 */1060(function($, window, document, undefined) {1061    'use strict';1062    var defaults = {1063        autoplay: false,1064        pause: 5000,1065        progressBar: true,1066        fourceAutoplay: false,1067        autoplayControls: true,1068        appendAutoplayControlsTo: '.lg-toolbar'1069    };1070    /**1071     * Creates the autoplay plugin.1072     * @param {object} element - lightGallery element1073     */1074    var Autoplay = function(element) {1075        this.core = $(element).data('lightGallery');1076        this.$el = $(element);1077        // Execute only if items are above 11078        if (this.core.$items.length < 2) {1079            return false;1080        }1081        this.core.s = $.extend({}, defaults, this.core.s);1082        this.interval = false;1083        // Identify if slide happened from autoplay1084        this.fromAuto = true;1085        // Identify if autoplay canceled from touch/drag1086        this.canceledOnTouch = false;1087        // save fourceautoplay value1088        this.fourceAutoplayTemp = this.core.s.fourceAutoplay;1089        // do not allow progress bar if browser does not support css3 transitions1090        if (!this.core.doCss()) {1091            this.core.s.progressBar = false;1092        }1093        this.init();1094        return this;1095    };1096    Autoplay.prototype.init = function() {1097        var _this = this;1098        // append autoplay controls1099        if (_this.core.s.autoplayControls) {1100            _this.controls();1101        }1102        // Create progress bar1103        if (_this.core.s.progressBar) {1104            _this.core.$outer.find('.lg').append('<div class="lg-progress-bar"><div class="lg-progress"></div></div>');1105        }1106        // set progress1107        _this.progress();1108        // Start autoplay1109        if (_this.core.s.autoplay) {1110            _this.startlAuto();1111        }1112        // cancel interval on touchstart and dragstart1113        _this.$el.on('onDragstart.lg.tm touchstart.lg.tm', function() {1114            if (_this.interval) {1115                _this.cancelAuto();1116                _this.canceledOnTouch = true;1117            }1118        });1119        // restore autoplay if autoplay canceled from touchstart / dragstart1120        _this.$el.on('onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm', function() {1121            if (!_this.interval && _this.canceledOnTouch) {1122                _this.startlAuto();1123                _this.canceledOnTouch = false;1124            }1125        });1126    };1127    Autoplay.prototype.progress = function() {1128        var _this = this;1129        var _$progressBar;1130        var _$progress;1131        _this.$el.on('onBeforeSlide.lg.tm', function() {1132            // start progress bar animation1133            if (_this.core.s.progressBar && _this.fromAuto) {1134                _$progressBar = _this.core.$outer.find('.lg-progress-bar');1135                _$progress = _this.core.$outer.find('.lg-progress');1136                if (_this.interval) {1137                    _$progress.removeAttr('style');1138                    _$progressBar.removeClass('lg-start');1139                    setTimeout(function() {1140                        _$progress.css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');1141                        _$progressBar.addClass('lg-start');1142                    }, 20);1143                }1144            }1145            // Remove setinterval if slide is triggered manually and fourceautoplay is false1146            if (!_this.fromAuto && !_this.core.s.fourceAutoplay) {1147                _this.cancelAuto();1148            }1149            _this.fromAuto = false;1150        });1151    };1152    // Manage autoplay via play/stop buttons1153    Autoplay.prototype.controls = function() {1154        var _this = this;1155        var _html = '<span class="lg-autoplay-button lg-icon"></span>';1156        // Append autoplay controls1157        $(this.core.s.appendAutoplayControlsTo).append(_html);1158        _this.core.$outer.find('.lg-autoplay-button').on('click.lg', function() {1159            if ($(_this.core.$outer).hasClass('lg-show-autoplay')) {1160                _this.cancelAuto();1161                _this.core.s.fourceAutoplay = false;1162            } else {1163                if (!_this.interval) {1164                    _this.startlAuto();1165                    _this.core.s.fourceAutoplay = _this.fourceAutoplayTemp;1166                }1167            }1168        });1169    };1170    // Autostart gallery1171    Autoplay.prototype.startlAuto = function() {1172        var _this = this;1173        _this.core.$outer.find('.lg-progress').css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');1174        _this.core.$outer.addClass('lg-show-autoplay');1175        _this.core.$outer.find('.lg-progress-bar').addClass('lg-start');1176        _this.interval = setInterval(function() {1177            if (_this.core.index + 1 < _this.core.$items.length) {1178                _this.core.index++;1179            } else {1180                _this.core.index = 0;1181            }1182            _this.fromAuto = true;1183            _this.core.slide(_this.core.index, false, false);1184        }, _this.core.s.speed + _this.core.s.pause);1185    };1186    // cancel Autostart1187    Autoplay.prototype.cancelAuto = function() {1188        clearInterval(this.interval);1189        this.interval = false;1190        this.core.$outer.find('.lg-progress').removeAttr('style');1191        this.core.$outer.removeClass('lg-show-autoplay');1192        this.core.$outer.find('.lg-progress-bar').removeClass('lg-start');1193    };1194    Autoplay.prototype.destroy = function() {1195        this.cancelAuto();1196        this.core.$outer.find('.lg-progress-bar').remove();1197    };1198    $.fn.lightGallery.modules.autoplay = Autoplay;1199})(jQuery, window, document);1200(function($, window, document, undefined) {1201    'use strict';1202    var defaults = {1203        fullScreen: true1204    };1205    var Fullscreen = function(element) {1206        // get lightGallery core plugin data1207        this.core = $(element).data('lightGallery');1208        this.$el = $(element);1209        // extend module defalut settings with lightGallery core settings1210        this.core.s = $.extend({}, defaults, this.core.s);1211        this.init();1212        return this;1213    };1214    Fullscreen.prototype.init = function() {1215        var fullScreen = '';1216        if (this.core.s.fullScreen) {1217            // check for fullscreen browser support1218            if (!document.fullscreenEnabled && !document.webkitFullscreenEnabled &&1219                !document.mozFullScreenEnabled && !document.msFullscreenEnabled) {1220                return;1221            } else {1222                fullScreen = '<span class="lg-fullscreen lg-icon"></span>';1223                this.core.$outer.find('.lg-toolbar').append(fullScreen);1224                this.fullScreen();1225            }1226        }1227    };1228    Fullscreen.prototype.requestFullscreen = function() {1229        var el = document.documentElement;1230        if (el.requestFullscreen) {1231            el.requestFullscreen();1232        } else if (el.msRequestFullscreen) {1233            el.msRequestFullscreen();1234        } else if (el.mozRequestFullScreen) {1235            el.mozRequestFullScreen();1236        } else if (el.webkitRequestFullscreen) {1237            el.webkitRequestFullscreen();1238        }1239    };1240    Fullscreen.prototype.exitFullscreen = function() {1241        if (document.exitFullscreen) {1242            document.exitFullscreen();1243        } else if (document.msExitFullscreen) {1244            document.msExitFullscreen();1245        } else if (document.mozCancelFullScreen) {1246            document.mozCancelFullScreen();1247        } else if (document.webkitExitFullscreen) {1248            document.webkitExitFullscreen();1249        }1250    };1251    // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode1252    Fullscreen.prototype.fullScreen = function() {1253        var _this = this;1254        $(document).on('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg', function() {1255            _this.core.$outer.toggleClass('lg-fullscreen-on');1256        });1257        this.core.$outer.find('.lg-fullscreen').on('click.lg', function() {1258            if (!document.fullscreenElement &&1259                !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {1260                _this.requestFullscreen();1261            } else {1262                _this.exitFullscreen();1263            }1264        });1265    };1266    Fullscreen.prototype.destroy = function() {1267        // exit from fullscreen if activated1268        this.exitFullscreen();1269        $(document).off('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg');1270    };1271    $.fn.lightGallery.modules.fullscreen = Fullscreen;1272})(jQuery, window, document);1273(function($, window, document, undefined) {1274    'use strict';1275    var defaults = {1276        pager: false1277    };1278    var Pager = function(element) {1279        this.core = $(element).data('lightGallery');1280        this.$el = $(element);1281        this.core.s = $.extend({}, defaults, this.core.s);1282        if (this.core.s.pager && this.core.$items.length > 1) {1283            this.init();1284        }1285        return this;1286    };1287    Pager.prototype.init = function() {1288        var _this = this;1289        var pagerList = '';1290        var $pagerCont;1291        var $pagerOuter;1292        var timeout;1293        _this.core.$outer.find('.lg').append('<div class="lg-pager-outer"></div>');1294        if (_this.core.s.dynamic) {1295            for (var i = 0; i < _this.core.s.dynamicEl.length; i++) {1296                pagerList += '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + _this.core.s.dynamicEl[i].thumb + '" /></div></span>';1297            }1298        } else {1299            _this.core.$items.each(function() {1300                if (!_this.core.s.exThumbImage) {1301                    pagerList += '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + $(this).find('img').attr('src') + '" /></div></span>';1302                } else {1303                    pagerList += '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + $(this).attr(_this.core.s.exThumbImage) + '" /></div></span>';1304                }1305            });1306        }1307        $pagerOuter = _this.core.$outer.find('.lg-pager-outer');1308        $pagerOuter.html(pagerList);1309        $pagerCont = _this.core.$outer.find('.lg-pager-cont');1310        $pagerCont.on('click.lg touchend.lg', function() {1311            var _$this = $(this);1312            _this.core.index = _$this.index();1313            _this.core.slide(_this.core.index, false, false);1314        });1315        $pagerOuter.on('mouseover.lg', function() {1316            clearTimeout(timeout);1317            $pagerOuter.addClass('lg-pager-hover');1318        });1319        $pagerOuter.on('mouseout.lg', function() {1320            timeout = setTimeout(function() {1321                $pagerOuter.removeClass('lg-pager-hover');1322            });1323        });1324        _this.core.$el.on('onBeforeSlide.lg.tm', function(e, prevIndex, index) {1325            $pagerCont.removeClass('lg-pager-active');1326            $pagerCont.eq(index).addClass('lg-pager-active');1327        });1328    };1329    Pager.prototype.destroy = function() {1330    };1331    $.fn.lightGallery.modules.pager = Pager;1332})(jQuery, window, document);1333(function($, window, document, undefined) {1334    'use strict';1335    var defaults = {1336        thumbnail: true,1337        animateThumb: true,1338        currentPagerPosition: 'middle',1339        thumbWidth: 100,1340        thumbContHeight: 100,1341        thumbMargin: 5,1342        exThumbImage: false,1343        showThumbByDefault: true,1344        toogleThumb: true,1345        pullCaptionUp: true,1346        enableThumbDrag: true,1347        enableThumbSwipe: true,1348        swipeThreshold: 50,1349        loadYoutubeThumbnail: true,1350        youtubeThumbSize: 1,1351        loadVimeoThumbnail: true,1352        vimeoThumbSize: 'thumbnail_small',1353        loadDailymotionThumbnail: true1354    };1355    var Thumbnail = function(element) {1356        // get lightGallery core plugin data1357        this.core = $(element).data('lightGallery');1358        // extend module default settings with lightGallery core settings1359        this.core.s = $.extend({}, defaults, this.core.s);1360        this.$el = $(element);1361        this.$thumbOuter = null;1362        this.thumbOuterWidth = 0;1363        this.thumbTotalWidth = (this.core.$items.length * (this.core.s.thumbWidth + this.core.s.thumbMargin));1364        this.thumbIndex = this.core.index;1365        // Thumbnail animation value1366        this.left = 0;1367        this.init();1368        return this;1369    };1370    Thumbnail.prototype.init = function() {1371        var _this = this;1372        if (this.core.s.thumbnail && this.core.$items.length > 1) {1373            if (this.core.s.showThumbByDefault) {1374                setTimeout(function(){1375                    _this.core.$outer.addClass('lg-thumb-open');1376                }, 700);1377            }1378            if (this.core.s.pullCaptionUp) {1379                this.core.$outer.addClass('lg-pull-caption-up');1380            }1381            this.build();1382            if (this.core.s.animateThumb) {1383                if (this.core.s.enableThumbDrag && !this.core.isTouch && this.core.doCss()) {1384                    this.enableThumbDrag();1385                }1386                if (this.core.s.enableThumbSwipe && this.core.isTouch && this.core.doCss()) {1387                    this.enableThumbSwipe();1388                }1389                this.thumbClickable = false;1390            } else {1391                this.thumbClickable = true;1392            }1393            this.toogle();1394            this.thumbkeyPress();1395        }1396    };1397    Thumbnail.prototype.build = function() {1398        var _this = this;1399        var thumbList = '';1400        var vimeoErrorThumbSize = '';1401        var $thumb;1402        var html = '<div class="lg-thumb-outer">' +1403            '<div class="lg-thumb group">' +1404            '</div>' +1405            '</div>';1406        switch (this.core.s.vimeoThumbSize) {1407            case 'thumbnail_large':1408                vimeoErrorThumbSize = '640';1409                break;1410            case 'thumbnail_medium':1411                vimeoErrorThumbSize = '200x150';1412                break;1413            case 'thumbnail_small':1414                vimeoErrorThumbSize = '100x75';1415        }1416        _this.core.$outer.addClass('lg-has-thumb');1417        _this.core.$outer.find('.lg').append(html);1418        _this.$thumbOuter = _this.core.$outer.find('.lg-thumb-outer');1419        _this.thumbOuterWidth = _this.$thumbOuter.width();1420        if (_this.core.s.animateThumb) {1421            _this.core.$outer.find('.lg-thumb').css({1422                width: _this.thumbTotalWidth + 'px',1423                position: 'relative'1424            });1425        }1426        if (this.core.s.animateThumb) {1427            _this.$thumbOuter.css('height', _this.core.s.thumbContHeight + 'px');1428        }1429        function getThumb(src, thumb, index) {1430            var isVideo = _this.core.isVideo(src, index) || {};1431            var thumbImg;1432            var vimeoId = '';1433            if (isVideo.youtube || isVideo.vimeo || isVideo.dailymotion) {1434                if (isVideo.youtube) {1435                    if (_this.core.s.loadYoutubeThumbnail) {1436                        thumbImg = '//img.youtube.com/vi/' + isVideo.youtube[1] + '/' + _this.core.s.youtubeThumbSize + '.jpg';1437                    } else {1438                        thumbImg = thumb;1439                    }1440                } else if (isVideo.vimeo) {1441                    if (_this.core.s.loadVimeoThumbnail) {1442                        thumbImg = '//i.vimeocdn.com/video/error_' + vimeoErrorThumbSize + '.jpg';1443                        vimeoId = isVideo.vimeo[1];1444                    } else {1445                        thumbImg = thumb;1446                    }1447                } else if (isVideo.dailymotion) {1448                    if (_this.core.s.loadDailymotionThumbnail) {1449                        thumbImg = '//www.dailymotion.com/thumbnail/video/' + isVideo.dailymotion[1];1450                    } else {1451                        thumbImg = thumb;1452                    }1453                }1454            } else {1455                thumbImg = thumb;1456            }1457            thumbList += '<div data-vimeo-id="' + vimeoId + '" class="lg-thumb-item" style="width:' + _this.core.s.thumbWidth + 'px; margin-right: ' + _this.core.s.thumbMargin + 'px"><img src="' + thumbImg + '" /></div>';1458            vimeoId = '';1459        }1460        if (_this.core.s.dynamic) {1461            for (var i = 0; i < _this.core.s.dynamicEl.length; i++) {1462                getThumb(_this.core.s.dynamicEl[i].src, _this.core.s.dynamicEl[i].thumb, i);1463            }1464        } else {1465            _this.core.$items.each(function(i) {1466                if (!_this.core.s.exThumbImage) {1467                    getThumb($(this).attr('href') || $(this).attr('data-src'), $(this).find('img').attr('src'), i);1468                } else {1469                    getThumb($(this).attr('href') || $(this).attr('data-src'), $(this).attr(_this.core.s.exThumbImage), i);1470                }1471            });1472        }1473        _this.core.$outer.find('.lg-thumb').html(thumbList);1474        $thumb = _this.core.$outer.find('.lg-thumb-item');1475        // Load vimeo thumbnails1476        $thumb.each(function() {1477            var $this = $(this);1478            var vimeoVideoId = $this.attr('data-vimeo-id');1479            if (vimeoVideoId) {1480                $.getJSON('//www.vimeo.com/api/v2/video/' + vimeoVideoId + '.json?callback=?', {1481                    format: 'json'1482                }, function(data) {1483                    $this.find('img').attr('src', data[0][_this.core.s.vimeoThumbSize]);1484                });1485            }1486        });1487        // manage active class for thumbnail1488        $thumb.eq(_this.core.index).addClass('active');1489        _this.core.$el.on('onBeforeSlide.lg.tm', function() {1490            $thumb.removeClass('active');1491            $thumb.eq(_this.core.index).addClass('active');1492        });1493        $thumb.on('click.lg touchend.lg', function() {1494            var _$this = $(this);1495            setTimeout(function() {1496                // In IE9 and bellow touch does not support1497                // Go to slide if browser does not support css transitions1498                if ((_this.thumbClickable && !_this.core.lgBusy) || !_this.core.doCss()) {1499                    _this.core.index = _$this.index();1500                    _this.core.slide(_this.core.index, false, true);1501                }1502            }, 50);1503        });1504        _this.core.$el.on('onBeforeSlide.lg.tm', function() {1505            _this.animateThumb(_this.core.index);1506        });1507        $(window).on('resize.lg.thumb orientationchange.lg.thumb', function() {1508            setTimeout(function() {1509                _this.animateThumb(_this.core.index);1510                _this.thumbOuterWidth = _this.$thumbOuter.width();1511            }, 200);1512        });1513    };1514    Thumbnail.prototype.setTranslate = function(value) {1515        // jQuery supports Automatic CSS prefixing since jQuery 1.8.01516        this.core.$outer.find('.lg-thumb').css({1517            transform: 'translate3d(-' + (value) + 'px, 0px, 0px)'1518        });1519    };1520    Thumbnail.prototype.animateThumb = function(index) {1521        var $thumb = this.core.$outer.find('.lg-thumb');1522        if (this.core.s.animateThumb) {1523            var position;1524            switch (this.core.s.currentPagerPosition) {1525                case 'left':1526                    position = 0;1527                    break;1528                case 'middle':1529                    position = (this.thumbOuterWidth / 2) - (this.core.s.thumbWidth / 2);1530                    break;1531                case 'right':1532                    position = this.thumbOuterWidth - this.core.s.thumbWidth;1533            }1534            this.left = ((this.core.s.thumbWidth + this.core.s.thumbMargin) * index - 1) - position;1535            if (this.left > (this.thumbTotalWidth - this.thumbOuterWidth)) {1536                this.left = this.thumbTotalWidth - this.thumbOuterWidth;1537            }1538            if (this.left < 0) {1539                this.left = 0;1540            }1541            if (this.core.lGalleryOn) {1542                if (!$thumb.hasClass('on')) {1543                    this.core.$outer.find('.lg-thumb').css('transition-duration', this.core.s.speed + 'ms');1544                }1545                if (!this.core.doCss()) {1546                    $thumb.animate({1547                        left: -this.left + 'px'1548                    }, this.core.s.speed);1549                }1550            } else {1551                if (!this.core.doCss()) {1552                    $thumb.css('left', -this.left + 'px');1553                }1554            }1555            this.setTranslate(this.left);1556        }1557    };1558    // Enable thumbnail dragging and swiping1559    Thumbnail.prototype.enableThumbDrag = function() {1560        var _this = this;1561        var startCoords = 0;1562        var endCoords = 0;1563        var isDraging = false;1564        var isMoved = false;1565        var tempLeft = 0;1566        _this.$thumbOuter.addClass('lg-grab');1567        _this.core.$outer.find('.lg-thumb').on('mousedown.lg.thumb', function(e) {1568            if (_this.thumbTotalWidth > _this.thumbOuterWidth) {1569                // execute only on .lg-object1570                e.preventDefault();1571                startCoords = e.pageX;1572                isDraging = true;1573                // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=267231574                _this.core.$outer.scrollLeft += 1;1575                _this.core.$outer.scrollLeft -= 1;1576                // *1577                _this.thumbClickable = false;1578                _this.$thumbOuter.removeClass('lg-grab').addClass('lg-grabbing');1579            }1580        });1581        $(window).on('mousemove.lg.thumb', function(e) {1582            if (isDraging) {1583                tempLeft = _this.left;1584                isMoved = true;1585                endCoords = e.pageX;1586                _this.$thumbOuter.addClass('lg-dragging');1587                tempLeft = tempLeft - (endCoords - startCoords);1588                if (tempLeft > (_this.thumbTotalWidth - _this.thumbOuterWidth)) {1589                    tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth;1590                }1591                if (tempLeft < 0) {1592                    tempLeft = 0;1593                }1594                // move current slide1595                _this.setTranslate(tempLeft);1596            }1597        });1598        $(window).on('mouseup.lg.thumb', function() {1599            if (isMoved) {1600                isMoved = false;1601                _this.$thumbOuter.removeClass('lg-dragging');1602                _this.left = tempLeft;1603                if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) {1604                    _this.thumbClickable = true;1605                }1606            } else {1607                _this.thumbClickable = true;1608            }1609            if (isDraging) {1610                isDraging = false;1611                _this.$thumbOuter.removeClass('lg-grabbing').addClass('lg-grab');1612            }1613        });1614    };1615    Thumbnail.prototype.enableThumbSwipe = function() {1616        var _this = this;1617        var startCoords = 0;1618        var endCoords = 0;1619        var isMoved = false;1620        var tempLeft = 0;1621        _this.core.$outer.find('.lg-thumb').on('touchstart.lg', function(e) {1622            if (_this.thumbTotalWidth > _this.thumbOuterWidth) {1623                e.preventDefault();1624                startCoords = e.originalEvent.targetTouches[0].pageX;1625                _this.thumbClickable = false;1626            }1627        });1628        _this.core.$outer.find('.lg-thumb').on('touchmove.lg', function(e) {1629            if (_this.thumbTotalWidth > _this.thumbOuterWidth) {1630                e.preventDefault();1631                endCoords = e.originalEvent.targetTouches[0].pageX;1632                isMoved = true;1633                _this.$thumbOuter.addClass('lg-dragging');1634                tempLeft = _this.left;1635                tempLeft = tempLeft - (endCoords - startCoords);1636                if (tempLeft > (_this.thumbTotalWidth - _this.thumbOuterWidth)) {1637                    tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth;1638                }1639                if (tempLeft < 0) {1640                    tempLeft = 0;1641                }1642                // move current slide1643                _this.setTranslate(tempLeft);1644            }1645        });1646        _this.core.$outer.find('.lg-thumb').on('touchend.lg', function() {1647            if (_this.thumbTotalWidth > _this.thumbOuterWidth) {1648                if (isMoved) {1649                    isMoved = false;1650                    _this.$thumbOuter.removeClass('lg-dragging');1651                    if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) {1652                        _this.thumbClickable = true;1653                    }1654                    _this.left = tempLeft;1655                } else {1656                    _this.thumbClickable = true;1657                }1658            } else {1659                _this.thumbClickable = true;1660            }1661        });1662    };1663    Thumbnail.prototype.toogle = function() {1664        var _this = this;1665        if (_this.core.s.toogleThumb) {1666            _this.core.$outer.addClass('lg-can-toggle');1667            _this.$thumbOuter.append('<span class="lg-toogle-thumb lg-icon"></span>');1668            _this.core.$outer.find('.lg-toogle-thumb').on('click.lg', function() {1669                _this.core.$outer.toggleClass('lg-thumb-open');1670            });1671        }1672    };1673    Thumbnail.prototype.thumbkeyPress = function() {1674        var _this = this;1675        $(window).on('keydown.lg.thumb', function(e) {1676            if (e.keyCode === 38) {1677                e.preventDefault();1678                _this.core.$outer.addClass('lg-thumb-open');1679            } else if (e.keyCode === 40) {1680                e.preventDefault();1681                _this.core.$outer.removeClass('lg-thumb-open');1682            }1683        });1684    };1685    Thumbnail.prototype.destroy = function() {1686        if (this.core.s.thumbnail && this.core.$items.length > 1) {1687            $(window).off('resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb');1688            this.$thumbOuter.remove();1689            this.core.$outer.removeClass('lg-has-thumb');1690        }1691    };1692    $.fn.lightGallery.modules.Thumbnail = Thumbnail;1693})(jQuery, window, document);1694(function($, window, document, undefined) {1695    'use strict';1696    var defaults = {1697        videoMaxWidth: '855px',1698        youtubePlayerParams: false,1699        vimeoPlayerParams: false,1700        dailymotionPlayerParams: false,1701        vkPlayerParams: false,1702        videojs: false,1703        videojsOptions: {}1704    };1705    var Video = function(element) {1706        this.core = $(element).data('lightGallery');1707        this.$el = $(element);1708        this.core.s = $.extend({}, defaults, this.core.s);1709        this.videoLoaded = false;1710        this.init();1711        return this;1712    };1713    Video.prototype.init = function() {1714        var _this = this;1715        // Event triggered when video url found without poster1716        _this.core.$el.on('hasVideo.lg.tm', function(event, index, src, html) {1717            _this.core.$slide.eq(index).find('.lg-video').append(_this.loadVideo(src, 'lg-object', true, index, html));1718            if (html) {1719                if (_this.core.s.videojs) {1720                    try {1721                        videojs(_this.core.$slide.eq(index).find('.lg-html5').get(0), _this.core.s.videojsOptions, function() {1722                            if (!_this.videoLoaded) {1723                                this.play();1724                            }1725                        });1726                    } catch (e) {1727                        console.error('Make sure you have included videojs');1728                    }1729                } else {1730                    _this.core.$slide.eq(index).find('.lg-html5').get(0).play();1731                }1732            }1733        });1734        // Set max width for video1735        _this.core.$el.on('onAferAppendSlide.lg.tm', function(event, index) {1736            _this.core.$slide.eq(index).find('.lg-video-cont').css('max-width', _this.core.s.videoMaxWidth);1737            _this.videoLoaded = true;1738        });1739        var loadOnClick = function($el) {1740            // check slide has poster1741            if ($el.find('.lg-object').hasClass('lg-has-poster') && $el.find('.lg-object').is(':visible')) {1742                // check already video element present1743                if (!$el.hasClass('lg-has-video')) {1744                    $el.addClass('lg-video-playing lg-has-video');1745                    var _src;1746                    var _html;1747                    var _loadVideo = function(_src, _html) {1748                        $el.find('.lg-video').append(_this.loadVideo(_src, '', false, _this.core.index, _html));1749                        if (_html) {1750                            if (_this.core.s.videojs) {1751                                try {1752                                    videojs(_this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0), _this.core.s.videojsOptions, function() {1753                                        this.play();1754                                    });1755                                } catch (e) {1756                                    console.error('Make sure you have included videojs');1757                                }1758                            } else {1759                                _this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0).play();1760                            }1761                        }1762                    };1763                    if (_this.core.s.dynamic) {1764                        _src = _this.core.s.dynamicEl[_this.core.index].src;1765                        _html = _this.core.s.dynamicEl[_this.core.index].html;1766                        _loadVideo(_src, _html);1767                    } else {1768                        _src = _this.core.$items.eq(_this.core.index).attr('href') || _this.core.$items.eq(_this.core.index).attr('data-src');1769                        _html = _this.core.$items.eq(_this.core.index).attr('data-html');1770                        _loadVideo(_src, _html);1771                    }1772                    var $tempImg = $el.find('.lg-object');1773                    $el.find('.lg-video').append($tempImg);1774                    // @todo loading icon for html5 videos also1775                    // for showing the loading indicator while loading video1776                    if (!$el.find('.lg-video-object').hasClass('lg-html5')) {1777                        $el.removeClass('lg-complete');1778                        $el.find('.lg-video-object').on('load.lg error.lg', function() {1779                            $el.addClass('lg-complete');1780                        });1781                    }1782                } else {1783                    var youtubePlayer = $el.find('.lg-youtube').get(0);1784                    var vimeoPlayer = $el.find('.lg-vimeo').get(0);1785                    var dailymotionPlayer = $el.find('.lg-dailymotion').get(0);1786                    var html5Player = $el.find('.lg-html5').get(0);1787                    if (youtubePlayer) {1788                        youtubePlayer.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');1789                    } else if (vimeoPlayer) {1790                        try {1791                            $f(vimeoPlayer).api('play');1792                        } catch (e) {1793                            console.error('Make sure you have included froogaloop2 js');1794                        }1795                    } else if (dailymotionPlayer) {1796                        dailymotionPlayer.contentWindow.postMessage('play', '*');1797                    } else if (html5Player) {1798                        if (_this.core.s.videojs) {1799                            try {1800                                videojs(html5Player).play();1801                            } catch (e) {1802                                console.error('Make sure you have included videojs');1803                            }1804                        } else {1805                            html5Player.play();1806                        }1807                    }1808                    $el.addClass('lg-video-playing');1809                }1810            }1811        };1812        if (_this.core.doCss() && _this.core.$items.length > 1 && ((_this.core.s.enableSwipe && _this.core.isTouch) || (_this.core.s.enableDrag && !_this.core.isTouch))) {1813            _this.core.$el.on('onSlideClick.lg.tm', function() {1814                var $el = _this.core.$slide.eq(_this.core.index);1815                loadOnClick($el);1816            });1817        } else {1818            // For IE 9 and bellow1819            _this.core.$slide.on('click.lg', function() {1820                loadOnClick($(this));1821            });1822        }1823        _this.core.$el.on('onBeforeSlide.lg.tm', function(event, prevIndex, index) {1824            var $videoSlide = _this.core.$slide.eq(prevIndex);1825            var youtubePlayer = $videoSlide.find('.lg-youtube').get(0);1826            var vimeoPlayer = $videoSlide.find('.lg-vimeo').get(0);1827            var dailymotionPlayer = $videoSlide.find('.lg-dailymotion').get(0);1828            var vkPlayer = $videoSlide.find('.lg-vk').get(0);1829            var html5Player = $videoSlide.find('.lg-html5').get(0);1830            if (youtubePlayer) {1831                youtubePlayer.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');1832            } else if (vimeoPlayer) {1833                try {1834                    $f(vimeoPlayer).api('pause');1835                } catch (e) {1836                    console.error('Make sure you have included froogaloop2 js');1837                }1838            } else if (dailymotionPlayer) {1839                dailymotionPlayer.contentWindow.postMessage('pause', '*');1840            } else if (html5Player) {1841                if (_this.core.s.videojs) {1842                    try {1843                        videojs(html5Player).pause();1844                    } catch (e) {1845                        console.error('Make sure you have included videojs');1846                    }1847                } else {1848                    html5Player.pause();1849                }1850            } if (vkPlayer) {1851                $(vkPlayer).attr('src', $(vkPlayer).attr('src').replace('&autoplay', '&noplay'));1852            }1853            var _src;1854            if (_this.core.s.dynamic) {1855                _src = _this.core.s.dynamicEl[index].src;1856            } else {1857                _src = _this.core.$items.eq(index).attr('href') || _this.core.$items.eq(index).attr('data-src');1858            }1859            var _isVideo = _this.core.isVideo(_src, index) || {};1860            if (_isVideo.youtube || _isVideo.vimeo || _isVideo.dailymotion || _isVideo.vk) {1861                _this.core.$outer.addClass('lg-hide-download');1862            }1863            //$videoSlide.addClass('lg-complete');1864        });1865        _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex) {1866            _this.core.$slide.eq(prevIndex).removeClass('lg-video-playing');1867        });1868    };1869    Video.prototype.loadVideo = function(src, addClass, noposter, index, html) {1870        var video = '';1871        var autoplay = 1;1872        var a = '';1873        var isVideo = this.core.isVideo(src, index) || {};1874        // Enable autoplay for first video if poster doesn't exist1875        if (noposter) {1876            if (this.videoLoaded) {1877                autoplay = 0;1878            } else {1879                autoplay = 1;1880            }1881        }1882        if (isVideo.youtube) {1883            a = '?wmode=opaque&autoplay=' + autoplay + '&enablejsapi=1';1884            if (this.core.s.youtubePlayerParams) {1885                a = a + '&' + $.param(this.core.s.youtubePlayerParams);1886            }1887            video = '<iframe class="lg-video-object lg-youtube ' + addClass + '" width="560" height="315" src="//www.youtube.com/embed/' + isVideo.youtube[1] + a + '" frameborder="0" allowfullscreen></iframe>';1888        } else if (isVideo.vimeo) {1889            a = '?autoplay=' + autoplay + '&api=1';1890            if (this.core.s.vimeoPlayerParams) {1891                a = a + '&' + $.param(this.core.s.vimeoPlayerParams);1892            }1893            video = '<iframe class="lg-video-object lg-vimeo ' + addClass + '" width="560" height="315"  src="//player.vimeo.com/video/' + isVideo.vimeo[1] + a + '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';1894        } else if (isVideo.dailymotion) {1895            a = '?wmode=opaque&autoplay=' + autoplay + '&api=postMessage';1896            if (this.core.s.dailymotionPlayerParams) {1897                a = a + '&' + $.param(this.core.s.dailymotionPlayerParams);1898            }1899            video = '<iframe class="lg-video-object lg-dailymotion ' + addClass + '" width="560" height="315" src="//www.dailymotion.com/embed/video/' + isVideo.dailymotion[1] + a + '" frameborder="0" allowfullscreen></iframe>';1900        } else if (isVideo.html5) {1901            var fL = html.substring(0, 1);1902            if (fL === '.' || fL === '#') {1903                html = $(html).html();1904            }1905            video = html;1906        } else if (isVideo.vk) {1907            a = '&autoplay=' + autoplay;1908            if (this.core.s.vkPlayerParams) {1909                a = a + '&' + $.param(this.core.s.vkPlayerParams);1910            }1911            video = '<iframe class="lg-video-object lg-vk ' + addClass + '" width="560" height="315" src="http://vk.com/video_ext.php?' + isVideo.vk[1] + a + '" frameborder="0" allowfullscreen></iframe>';1912        }1913        return video;1914    };1915    Video.prototype.destroy = function() {1916        this.videoLoaded = false;1917    };1918    $.fn.lightGallery.modules.video = Video;1919})(jQuery, window, document);1920(function($, window, document, undefined) {1921    'use strict';1922    var defaults = {1923        scale: 1,1924        zoom: true,1925        actualSize: true,1926        enableZoomAfter: 3001927    };1928    var Zoom = function(element) {1929        this.core = $(element).data('lightGallery');1930        this.core.s = $.extend({}, defaults, this.core.s);1931        if (this.core.s.zoom && this.core.doCss()) {1932            this.init();1933            // Store the zoomable timeout value just to clear it while closing1934            this.zoomabletimeout = false;1935            // Set the initial value center1936            this.pageX = $(window).width() / 2;1937            this.pageY = ($(window).height() / 2) + $(window).scrollTop();1938        }1939        return this;1940    };1941    Zoom.prototype.init = function() {1942        var _this = this;1943        var zoomIcons = '<span id="lg-zoom-in" class="lg-icon"></span><span id="lg-zoom-out" class="lg-icon"></span>';1944        if (_this.core.s.actualSize) {1945            zoomIcons += '<span id="lg-actual-size" class="lg-icon"></span>';1946        }1947        this.core.$outer.find('.lg-toolbar').append(zoomIcons);1948        // Add zoomable class1949        _this.core.$el.on('onSlideItemLoad.lg.tm.zoom', function(event, index, delay) {1950            // delay will be 0 except first time1951            var _speed = _this.core.s.enableZoomAfter + delay;1952            // set _speed value 0 if gallery opened from direct url and if it is first slide1953            if ($('body').hasClass('lg-from-hash') && delay) {1954                // will execute only once1955                _speed = 0;1956            } else {1957                // Remove lg-from-hash to enable starting animation.1958                $('body').removeClass('lg-from-hash');1959            }1960            _this.zoomabletimeout = setTimeout(function() {1961                _this.core.$slide.eq(index).addClass('lg-zoomable');1962            }, _speed + 30);1963        });1964        var scale = 1;1965        /**1966         * @desc Image zoom1967         * Translate the wrap and scale the image to get better user experience1968         *1969         * @param {String} scaleVal - Zoom decrement/increment value1970         */1971        var zoom = function(scaleVal) {1972            var $image = _this.core.$outer.find('.lg-current .lg-image');1973            var _x;1974            var _y;1975            // Find offset manually to avoid issue after zoom1976            var offsetX = ($(window).width() - $image.width()) / 2;1977            var offsetY = (($(window).height() - $image.height()) / 2) + $(window).scrollTop();1978            _x = _this.pageX - offsetX;1979            _y = _this.pageY - offsetY;1980            var x = (scaleVal - 1) * (_x);1981            var y = (scaleVal - 1) * (_y);1982            $image.css('transform', 'scale3d(' + scaleVal + ', ' + scaleVal + ', 1)').attr('data-scale', scaleVal);1983            $image.parent().css({1984                left: -x + 'px',1985                top: -y + 'px'1986            }).attr('data-x', x).attr('data-y', y);1987        };1988        var callScale = function() {1989            if (scale > 1) {1990                _this.core.$outer.addClass('lg-zoomed');1991            } else {1992                _this.resetZoom();1993            }1994            if (scale < 1) {1995                scale = 1;1996            }1997            zoom(scale);1998        };1999        var actualSize = function(event, $image, index, fromIcon) {2000            var w = $image.width();2001            var nw;2002            if (_this.core.s.dynamic) {2003                nw = _this.core.s.dynamicEl[index].width || $image[0].naturalWidth || w;2004            } else {2005                nw = _this.core.$items.eq(index).attr('data-width') || $image[0].naturalWidth || w;2006            }2007            var _scale;2008            if (_this.core.$outer.hasClass('lg-zoomed')) {2009                scale = 1;2010            } else {2011                if (nw > w) {2012                    _scale = nw / w;2013                    scale = _scale || 2;2014                }2015            }2016            if (fromIcon) {2017                _this.pageX = $(window).width() / 2;2018                _this.pageY = ($(window).height() / 2) + $(window).scrollTop();2019            } else {2020                _this.pageX = event.pageX || event.originalEvent.targetTouches[0].pageX;2021                _this.pageY = event.pageY || event.originalEvent.targetTouches[0].pageY;2022            }2023            callScale();2024            setTimeout(function() {2025                _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab');2026            }, 10);2027        };2028        var tapped = false;2029        // event triggered after appending slide content2030        _this.core.$el.on('onAferAppendSlide.lg.tm.zoom', function(event, index) {2031            // Get the current element2032            var $image = _this.core.$slide.eq(index).find('.lg-image');2033            $image.on('dblclick', function(event) {2034                actualSize(event, $image, index);2035            });2036            $image.on('touchstart', function(event) {2037                if (!tapped) {2038                    tapped = setTimeout(function() {2039                        tapped = null;2040                    }, 300);2041                } else {2042                    clearTimeout(tapped);2043                    tapped = null;2044                    actualSize(event, $image, index);2045                }2046                event.preventDefault();2047            });2048        });2049        // Update zoom on resize and orientationchange2050        $(window).on('resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom', function() {2051            _this.pageX = $(window).width() / 2;2052            _this.pageY = ($(window).height() / 2) + $(window).scrollTop();2053            zoom(scale);2054        });2055        $('#lg-zoom-out').on('click.lg', function() {2056            if (_this.core.$outer.find('.lg-current .lg-image').length) {2057                scale -= _this.core.s.scale;2058                callScale();2059            }2060        });2061        $('#lg-zoom-in').on('click.lg', function() {2062            if (_this.core.$outer.find('.lg-current .lg-image').length) {2063                scale += _this.core.s.scale;2064                callScale();2065            }2066        });2067        $('#lg-actual-size').on('click.lg', function(event) {2068            actualSize(event, _this.core.$slide.eq(_this.core.index).find('.lg-image'), _this.core.index, true);2069        });2070        // Reset zoom on slide change2071        _this.core.$el.on('onBeforeSlide.lg.tm', function() {2072            scale = 1;2073            _this.resetZoom();2074        });2075        // Drag option after zoom2076        if (!_this.core.isTouch) {2077            _this.zoomDrag();2078        }2079        if (_this.core.isTouch) {2080            _this.zoomSwipe();2081        }2082    };2083    // Reset zoom effect2084    Zoom.prototype.resetZoom = function() {2085        this.core.$outer.removeClass('lg-zoomed');2086        this.core.$slide.find('.lg-img-wrap').removeAttr('style data-x data-y');2087        this.core.$slide.find('.lg-image').removeAttr('style data-scale');2088        // Reset pagx pagy values to center2089        this.pageX = $(window).width() / 2;2090        this.pageY = ($(window).height() / 2) + $(window).scrollTop();2091    };2092    Zoom.prototype.zoomSwipe = function() {2093        var _this = this;2094        var startCoords = {};2095        var endCoords = {};2096        var isMoved = false;2097        // Allow x direction drag2098        var allowX = false;2099        // Allow Y direction drag2100        var allowY = false;2101        _this.core.$slide.on('touchstart.lg', function(e) {2102            if (_this.core.$outer.hasClass('lg-zoomed')) {2103                var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');2104                allowY = $image.outerHeight() * $image.attr('data-scale') > _this.core.$outer.find('.lg').height();2105                allowX = $image.outerWidth() * $image.attr('data-scale') > _this.core.$outer.find('.lg').width();2106                if ((allowX || allowY)) {2107                    e.preventDefault();2108                    startCoords = {2109                        x: e.originalEvent.targetTouches[0].pageX,2110                        y: e.originalEvent.targetTouches[0].pageY2111                    };2112                }2113            }2114        });2115        _this.core.$slide.on('touchmove.lg', function(e) {2116            if (_this.core.$outer.hasClass('lg-zoomed')) {2117                var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');2118                var distanceX;2119                var distanceY;2120                e.preventDefault();2121                isMoved = true;2122                endCoords = {2123                    x: e.originalEvent.targetTouches[0].pageX,2124                    y: e.originalEvent.targetTouches[0].pageY2125                };2126                // reset opacity and transition duration2127                _this.core.$outer.addClass('lg-zoom-dragging');2128                if (allowY) {2129                    distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y);2130                } else {2131                    distanceY = -Math.abs(_$el.attr('data-y'));2132                }2133                if (allowX) {2134                    distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x);2135                } else {2136                    distanceX = -Math.abs(_$el.attr('data-x'));2137                }2138                if ((Math.abs(endCoords.x - startCoords.x) > 15) || (Math.abs(endCoords.y - startCoords.y) > 15)) {2139                    _$el.css({2140                        left: distanceX + 'px',2141                        top: distanceY + 'px'2142                    });2143                }2144            }2145        });2146        _this.core.$slide.on('touchend.lg', function() {2147            if (_this.core.$outer.hasClass('lg-zoomed')) {2148                if (isMoved) {2149                    isMoved = false;2150                    _this.core.$outer.removeClass('lg-zoom-dragging');2151                    _this.touchendZoom(startCoords, endCoords, allowX, allowY);2152                }2153            }2154        });2155    };2156    Zoom.prototype.zoomDrag = function() {2157        var _this = this;2158        var startCoords = {};2159        var endCoords = {};2160        var isDraging = false;2161        var isMoved = false;2162        // Allow x direction drag2163        var allowX = false;2164        // Allow Y direction drag2165        var allowY = false;2166        _this.core.$slide.on('mousedown.lg.zoom', function(e) {2167            // execute only on .lg-object2168            var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');2169            allowY = $image.outerHeight() * $image.attr('data-scale') > _this.core.$outer.find('.lg').height();2170            allowX = $image.outerWidth() * $image.attr('data-scale') > _this.core.$outer.find('.lg').width();2171            if (_this.core.$outer.hasClass('lg-zoomed')) {2172                if ($(e.target).hasClass('lg-object') && (allowX || allowY)) {2173                    e.preventDefault();2174                    startCoords = {2175                        x: e.pageX,2176                        y: e.pageY2177                    };2178                    isDraging = true;2179                    // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=267232180                    _this.core.$outer.scrollLeft += 1;2181                    _this.core.$outer.scrollLeft -= 1;2182                    _this.core.$outer.removeClass('lg-grab').addClass('lg-grabbing');2183                }2184            }2185        });2186        $(window).on('mousemove.lg.zoom', function(e) {2187            if (isDraging) {2188                var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');2189                var distanceX;2190                var distanceY;2191                isMoved = true;2192                endCoords = {2193                    x: e.pageX,2194                    y: e.pageY2195                };2196                // reset opacity and transition duration2197                _this.core.$outer.addClass('lg-zoom-dragging');2198                if (allowY) {2199                    distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y);2200                } else {2201                    distanceY = -Math.abs(_$el.attr('data-y'));2202                }2203                if (allowX) {2204                    distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x);2205                } else {2206                    distanceX = -Math.abs(_$el.attr('data-x'));2207                }2208                _$el.css({2209                    left: distanceX + 'px',2210                    top: distanceY + 'px'2211                });2212            }2213        });2214        $(window).on('mouseup.lg.zoom', function(e) {2215            if (isDraging) {2216                isDraging = false;2217                _this.core.$outer.removeClass('lg-zoom-dragging');2218                // Fix for chrome mouse move on click2219                if (isMoved && ((startCoords.x !== endCoords.x) || (startCoords.y !== endCoords.y))) {2220                    endCoords = {2221                        x: e.pageX,2222                        y: e.pageY2223                    };2224                    _this.touchendZoom(startCoords, endCoords, allowX, allowY);2225                }2226                isMoved = false;2227            }2228            _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab');2229        });2230    };2231    Zoom.prototype.touchendZoom = function(startCoords, endCoords, allowX, allowY) {2232        var _this = this;2233        var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');2234        var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');2235        var distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x);2236        var distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y);2237        var minY = (_this.core.$outer.find('.lg').height() - $image.outerHeight()) / 2;2238        var maxY = Math.abs(($image.outerHeight() * Math.abs($image.attr('data-scale'))) - _this.core.$outer.find('.lg').height() + minY);2239        var minX = (_this.core.$outer.find('.lg').width() - $image.outerWidth()) / 2;2240        var maxX = Math.abs(($image.outerWidth() * Math.abs($image.attr('data-scale'))) - _this.core.$outer.find('.lg').width() + minX);2241        if ((Math.abs(endCoords.x - startCoords.x) > 15) || (Math.abs(endCoords.y - startCoords.y) > 15)) {2242            if (allowY) {2243                if (distanceY <= -maxY) {2244                    distanceY = -maxY;2245                } else if (distanceY >= -minY) {2246                    distanceY = -minY;2247                }2248            }2249            if (allowX) {2250                if (distanceX <= -maxX) {2251                    distanceX = -maxX;2252                } else if (distanceX >= -minX) {2253                    distanceX = -minX;2254                }2255            }2256            if (allowY) {2257                _$el.attr('data-y', Math.abs(distanceY));2258            } else {2259                distanceY = -Math.abs(_$el.attr('data-y'));2260            }2261            if (allowX) {2262                _$el.attr('data-x', Math.abs(distanceX));2263            } else {2264                distanceX = -Math.abs(_$el.attr('data-x'));2265            }2266            _$el.css({2267                left: distanceX + 'px',2268                top: distanceY + 'px'2269            });2270        }2271    };2272    Zoom.prototype.destroy = function() {2273        var _this = this;2274        // Unbind all events added by lightGallery zoom plugin2275        _this.core.$el.off('.lg.zoom');2276        $(window).off('.lg.zoom');2277        _this.core.$slide.off('.lg.zoom');2278        _this.core.$el.off('.lg.tm.zoom');2279        _this.resetZoom();2280        clearTimeout(_this.zoomabletimeout);2281        _this.zoomabletimeout = false;2282    };2283    $.fn.lightGallery.modules.zoom = Zoom;2284})(jQuery, window, document);2285(function($, window, document, undefined) {2286    'use strict';2287    var defaults = {2288        hash: true2289    };2290    var Hash = function(element) {2291        this.core = $(element).data('lightGallery');2292        this.core.s = $.extend({}, defaults, this.core.s);2293        if (this.core.s.hash) {2294            this.oldHash = window.location.hash;2295            this.init();2296        }2297        return this;2298    };2299    Hash.prototype.init = function() {2300        var _this = this;2301        var _hash;2302        // Change hash value on after each slide transition2303        _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex, index) {2304            window.location.hash = 'lg=' + _this.core.s.galleryId + '&slide=' + index;2305        });2306        // Listen hash change and change the slide according to slide value2307        $(window).on('hashchange.lg.hash', function() {2308            _hash = window.location.hash;2309            var _idx = parseInt(_hash.split('&slide=')[1], 10);2310            // it galleryId doesn't exist in the url close the gallery2311            if ((_hash.indexOf('lg=' + _this.core.s.galleryId) > -1)) {2312                _this.core.slide(_idx, false, false);2313            } else if (_this.core.lGalleryOn) {2314                _this.core.destroy();2315            }2316        });2317    };2318    Hash.prototype.destroy = function() {2319        if (!this.core.s.hash) {2320            return;2321        }2322        // Reset to old hash value2323        if (this.oldHash && this.oldHash.indexOf('lg=' + this.core.s.galleryId) < 0) {2324            window.location.hash = this.oldHash;2325        } else {2326            if (history.pushState) {2327                history.pushState('', document.title, window.location.pathname + window.location.search);2328            } else {2329                window.location.hash = '';2330            }2331        }2332        this.core.$el.off('.lg.hash');2333    };2334    $.fn.lightGallery.modules.hash = Hash;...lightgallery.js
Source:lightgallery.js  
1/**!2 * lightgallery.js | 1.0.3 | May 17th 20183 * http://sachinchoolur.github.io/lightgallery.js/4 * Copyright (c) 2016 Sachin N; 5 * @license GPLv3 6 */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Lightgallery = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){7(function (global, factory) {8    if (typeof define === "function" && define.amd) {9        define(['exports'], factory);10    } else if (typeof exports !== "undefined") {11        factory(exports);12    } else {13        var mod = {14            exports: {}15        };16        factory(mod.exports);17        global.lgUtils = mod.exports;18    }19})(this, function (exports) {20    'use strict';21    Object.defineProperty(exports, "__esModule", {22        value: true23    });24    /*25     *@todo remove function from window and document. Update on and off functions26     */27    window.getAttribute = function (label) {28        return window[label];29    };30    window.setAttribute = function (label, value) {31        window[label] = value;32    };33    document.getAttribute = function (label) {34        return document[label];35    };36    document.setAttribute = function (label, value) {37        document[label] = value;38    };39    var utils = {40        wrap: function wrap(el, className) {41            if (!el) {42                return;43            }44            var wrapper = document.createElement('div');45            wrapper.className = className;46            el.parentNode.insertBefore(wrapper, el);47            el.parentNode.removeChild(el);48            wrapper.appendChild(el);49        },50        addClass: function addClass(el, className) {51            if (!el) {52                return;53            }54            if (el.classList) {55                el.classList.add(className);56            } else {57                el.className += ' ' + className;58            }59        },60        removeClass: function removeClass(el, className) {61            if (!el) {62                return;63            }64            if (el.classList) {65                el.classList.remove(className);66            } else {67                el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');68            }69        },70        hasClass: function hasClass(el, className) {71            if (el.classList) {72                return el.classList.contains(className);73            } else {74                return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);75            }76            return false;77        },78        // ex Transform79        // ex TransitionTimingFunction80        setVendor: function setVendor(el, property, value) {81            if (!el) {82                return;83            }84            el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;85            el.style['webkit' + property] = value;86            el.style['moz' + property] = value;87            el.style['ms' + property] = value;88            el.style['o' + property] = value;89        },90        trigger: function trigger(el, event) {91            var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;92            if (!el) {93                return;94            }95            var customEvent = new CustomEvent(event, {96                detail: detail97            });98            el.dispatchEvent(customEvent);99        },100        Listener: {101            uid: 0102        },103        on: function on(el, events, fn) {104            if (!el) {105                return;106            }107            events.split(' ').forEach(function (event) {108                var _id = el.getAttribute('lg-event-uid') || '';109                utils.Listener.uid++;110                _id += '&' + utils.Listener.uid;111                el.setAttribute('lg-event-uid', _id);112                utils.Listener[event + utils.Listener.uid] = fn;113                el.addEventListener(event.split('.')[0], fn, false);114            });115        },116        off: function off(el, event) {117            if (!el) {118                return;119            }120            var _id = el.getAttribute('lg-event-uid');121            if (_id) {122                _id = _id.split('&');123                for (var i = 0; i < _id.length; i++) {124                    if (_id[i]) {125                        var _event = event + _id[i];126                        if (_event.substring(0, 1) === '.') {127                            for (var key in utils.Listener) {128                                if (utils.Listener.hasOwnProperty(key)) {129                                    if (key.split('.').indexOf(_event.split('.')[1]) > -1) {130                                        el.removeEventListener(key.split('.')[0], utils.Listener[key]);131                                        el.setAttribute('lg-event-uid', el.getAttribute('lg-event-uid').replace('&' + _id[i], ''));132                                        delete utils.Listener[key];133                                    }134                                }135                            }136                        } else {137                            el.removeEventListener(_event.split('.')[0], utils.Listener[_event]);138                            el.setAttribute('lg-event-uid', el.getAttribute('lg-event-uid').replace('&' + _id[i], ''));139                            delete utils.Listener[_event];140                        }141                    }142                }143            }144        },145        param: function param(obj) {146            return Object.keys(obj).map(function (k) {147                return encodeURIComponent(k) + '=' + encodeURIComponent(obj[k]);148            }).join('&');149        }150    };151    exports.default = utils;152});153},{}],2:[function(require,module,exports){154(function (global, factory) {155    if (typeof define === "function" && define.amd) {156        define(['./lg-utils'], factory);157    } else if (typeof exports !== "undefined") {158        factory(require('./lg-utils'));159    } else {160        var mod = {161            exports: {}162        };163        factory(global.lgUtils);164        global.lightgallery = mod.exports;165    }166})(this, function (_lgUtils) {167    'use strict';168    var _lgUtils2 = _interopRequireDefault(_lgUtils);169    function _interopRequireDefault(obj) {170        return obj && obj.__esModule ? obj : {171            default: obj172        };173    }174    var _extends = Object.assign || function (target) {175        for (var i = 1; i < arguments.length; i++) {176            var source = arguments[i];177            for (var key in source) {178                if (Object.prototype.hasOwnProperty.call(source, key)) {179                    target[key] = source[key];180                }181            }182        }183        return target;184    };185    /** Polyfill the CustomEvent() constructor functionality in Internet Explorer 9 and higher */186    (function () {187        if (typeof window.CustomEvent === 'function') {188            return false;189        }190        function CustomEvent(event, params) {191            params = params || {192                bubbles: false,193                cancelable: false,194                detail: undefined195            };196            var evt = document.createEvent('CustomEvent');197            evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);198            return evt;199        }200        CustomEvent.prototype = window.Event.prototype;201        window.CustomEvent = CustomEvent;202    })();203    window.utils = _lgUtils2.default;204    window.lgData = {205        uid: 0206    };207    window.lgModules = {};208    var defaults = {209        mode: 'lg-slide',210        // Ex : 'ease'211        cssEasing: 'ease',212        //'for jquery animation'213        easing: 'linear',214        speed: 600,215        height: '100%',216        width: '100%',217        addClass: '',218        startClass: 'lg-start-zoom',219        backdropDuration: 150,220        hideBarsDelay: 6000,221        useLeft: false,222        closable: true,223        loop: true,224        escKey: true,225        keyPress: true,226        controls: true,227        slideEndAnimatoin: true,228        hideControlOnEnd: false,229        mousewheel: false,230        getCaptionFromTitleOrAlt: true,231        // .lg-item || '.lg-sub-html'232        appendSubHtmlTo: '.lg-sub-html',233        subHtmlSelectorRelative: false,234        /**235         * @desc number of preload slides236         * will exicute only after the current slide is fully loaded.237         *238         * @ex you clicked on 4th image and if preload = 1 then 3rd slide and 5th239         * slide will be loaded in the background after the 4th slide is fully loaded..240         * if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ...241         *242         */243        preload: 1,244        showAfterLoad: true,245        selector: '',246        selectWithin: '',247        nextHtml: '',248        prevHtml: '',249        // 0, 1250        index: false,251        iframeMaxWidth: '100%',252        download: true,253        counter: true,254        appendCounterTo: '.lg-toolbar',255        swipeThreshold: 50,256        enableSwipe: true,257        enableDrag: true,258        dynamic: false,259        dynamicEl: [],260        galleryId: 1261    };262    function Plugin(element, options) {263        // Current lightGallery element264        this.el = element;265        // lightGallery settings266        this.s = _extends({}, defaults, options);267        // When using dynamic mode, ensure dynamicEl is an array268        if (this.s.dynamic && this.s.dynamicEl !== 'undefined' && this.s.dynamicEl.constructor === Array && !this.s.dynamicEl.length) {269            throw 'When using dynamic mode, you must also define dynamicEl as an Array.';270        }271        // lightGallery modules272        this.modules = {};273        // false when lightgallery complete first slide;274        this.lGalleryOn = false;275        this.lgBusy = false;276        // Timeout function for hiding controls;277        this.hideBartimeout = false;278        // To determine browser supports for touch events;279        this.isTouch = 'ontouchstart' in document.documentElement;280        // Disable hideControlOnEnd if sildeEndAnimation is true281        if (this.s.slideEndAnimatoin) {282            this.s.hideControlOnEnd = false;283        }284        this.items = [];285        // Gallery items286        if (this.s.dynamic) {287            this.items = this.s.dynamicEl;288        } else {289            if (this.s.selector === 'this') {290                this.items.push(this.el);291            } else if (this.s.selector !== '') {292                if (this.s.selectWithin) {293                    this.items = document.querySelector(this.s.selectWithin).querySelectorAll(this.s.selector);294                } else {295                    this.items = this.el.querySelectorAll(this.s.selector);296                }297            } else {298                this.items = this.el.children;299            }300        }301        // .lg-item302        this.___slide = '';303        // .lg-outer304        this.outer = '';305        this.init();306        return this;307    }308    Plugin.prototype.init = function () {309        var _this = this;310        // s.preload should not be more than $item.length311        if (_this.s.preload > _this.items.length) {312            _this.s.preload = _this.items.length;313        }314        // if dynamic option is enabled execute immediately315        var _hash = window.location.hash;316        if (_hash.indexOf('lg=' + this.s.galleryId) > 0) {317            _this.index = parseInt(_hash.split('&slide=')[1], 10);318            _lgUtils2.default.addClass(document.body, 'lg-from-hash');319            if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {320                _lgUtils2.default.addClass(document.body, 'lg-on');321                setTimeout(function () {322                    _this.build(_this.index);323                });324            }325        }326        if (_this.s.dynamic) {327            _lgUtils2.default.trigger(this.el, 'onBeforeOpen');328            _this.index = _this.s.index || 0;329            // prevent accidental double execution330            if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {331                _lgUtils2.default.addClass(document.body, 'lg-on');332                setTimeout(function () {333                    _this.build(_this.index);334                });335            }336        } else {337            for (var i = 0; i < _this.items.length; i++) {338                /*jshint loopfunc: true */339                (function (index) {340                    // Using different namespace for click because click event should not unbind if selector is same object('this')341                    _lgUtils2.default.on(_this.items[index], 'click.lgcustom', function (e) {342                        e.preventDefault();343                        _lgUtils2.default.trigger(_this.el, 'onBeforeOpen');344                        _this.index = _this.s.index || index;345                        if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {346                            _this.build(_this.index);347                            _lgUtils2.default.addClass(document.body, 'lg-on');348                        }349                    });350                })(i);351            }352        }353    };354    Plugin.prototype.build = function (index) {355        var _this = this;356        _this.structure();357        for (var key in window.lgModules) {358            _this.modules[key] = new window.lgModules[key](_this.el);359        }360        // initiate slide function361        _this.slide(index, false, false);362        if (_this.s.keyPress) {363            _this.keyPress();364        }365        if (_this.items.length > 1) {366            _this.arrow();367            setTimeout(function () {368                _this.enableDrag();369                _this.enableSwipe();370            }, 50);371            if (_this.s.mousewheel) {372                _this.mousewheel();373            }374        }375        _this.counter();376        _this.closeGallery();377        _lgUtils2.default.trigger(_this.el, 'onAfterOpen');378        // Hide controllers if mouse doesn't move for some period379        _lgUtils2.default.on(_this.outer, 'mousemove.lg click.lg touchstart.lg', function () {380            _lgUtils2.default.removeClass(_this.outer, 'lg-hide-items');381            clearTimeout(_this.hideBartimeout);382            // Timeout will be cleared on each slide movement also383            _this.hideBartimeout = setTimeout(function () {384                _lgUtils2.default.addClass(_this.outer, 'lg-hide-items');385            }, _this.s.hideBarsDelay);386        });387    };388    Plugin.prototype.structure = function () {389        var list = '';390        var controls = '';391        var i = 0;392        var subHtmlCont = '';393        var template;394        var _this = this;395        document.body.insertAdjacentHTML('beforeend', '<div class="lg-backdrop"></div>');396        _lgUtils2.default.setVendor(document.querySelector('.lg-backdrop'), 'TransitionDuration', this.s.backdropDuration + 'ms');397        // Create gallery items398        for (i = 0; i < this.items.length; i++) {399            list += '<div class="lg-item"></div>';400        }401        // Create controlls402        if (this.s.controls && this.items.length > 1) {403            controls = '<div class="lg-actions">' + '<div class="lg-prev lg-icon">' + this.s.prevHtml + '</div>' + '<div class="lg-next lg-icon">' + this.s.nextHtml + '</div>' + '</div>';404        }405        if (this.s.appendSubHtmlTo === '.lg-sub-html') {406            subHtmlCont = '<div class="lg-sub-html"></div>';407        }408        template = '<div class="lg-outer ' + this.s.addClass + ' ' + this.s.startClass + '">' + '<div class="lg" style="width:' + this.s.width + '; height:' + this.s.height + '">' + '<div class="lg-inner">' + list + '</div>' + '<div class="lg-toolbar group">' + '<span class="lg-close lg-icon"></span>' + '</div>' + controls + subHtmlCont + '</div>' + '</div>';409        document.body.insertAdjacentHTML('beforeend', template);410        this.outer = document.querySelector('.lg-outer');411        this.___slide = this.outer.querySelectorAll('.lg-item');412        if (this.s.useLeft) {413            _lgUtils2.default.addClass(this.outer, 'lg-use-left');414            // Set mode lg-slide if use left is true;415            this.s.mode = 'lg-slide';416        } else {417            _lgUtils2.default.addClass(this.outer, 'lg-use-css3');418        }419        // For fixed height gallery420        _this.setTop();421        _lgUtils2.default.on(window, 'resize.lg orientationchange.lg', function () {422            setTimeout(function () {423                _this.setTop();424            }, 100);425        });426        // add class lg-current to remove initial transition427        _lgUtils2.default.addClass(this.___slide[this.index], 'lg-current');428        // add Class for css support and transition mode429        if (this.doCss()) {430            _lgUtils2.default.addClass(this.outer, 'lg-css3');431        } else {432            _lgUtils2.default.addClass(this.outer, 'lg-css');433            // Set speed 0 because no animation will happen if browser doesn't support css3434            this.s.speed = 0;435        }436        _lgUtils2.default.addClass(this.outer, this.s.mode);437        if (this.s.enableDrag && this.items.length > 1) {438            _lgUtils2.default.addClass(this.outer, 'lg-grab');439        }440        if (this.s.showAfterLoad) {441            _lgUtils2.default.addClass(this.outer, 'lg-show-after-load');442        }443        if (this.doCss()) {444            var inner = this.outer.querySelector('.lg-inner');445            _lgUtils2.default.setVendor(inner, 'TransitionTimingFunction', this.s.cssEasing);446            _lgUtils2.default.setVendor(inner, 'TransitionDuration', this.s.speed + 'ms');447        }448        setTimeout(function () {449            _lgUtils2.default.addClass(document.querySelector('.lg-backdrop'), 'in');450        });451        setTimeout(function () {452            _lgUtils2.default.addClass(_this.outer, 'lg-visible');453        }, this.s.backdropDuration);454        if (this.s.download) {455            this.outer.querySelector('.lg-toolbar').insertAdjacentHTML('beforeend', '<a id="lg-download" target="_blank" download class="lg-download lg-icon"></a>');456        }457        // Store the current scroll top value to scroll back after closing the gallery..458        this.prevScrollTop = document.documentElement.scrollTop || document.body.scrollTop;459    };460    // For fixed height gallery461    Plugin.prototype.setTop = function () {462        if (this.s.height !== '100%') {463            var wH = window.innerHeight;464            var top = (wH - parseInt(this.s.height, 10)) / 2;465            var lGallery = this.outer.querySelector('.lg');466            if (wH >= parseInt(this.s.height, 10)) {467                lGallery.style.top = top + 'px';468            } else {469                lGallery.style.top = '0px';470            }471        }472    };473    // Find css3 support474    Plugin.prototype.doCss = function () {475        // check for css animation support476        var support = function support() {477            var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];478            var root = document.documentElement;479            var i = 0;480            for (i = 0; i < transition.length; i++) {481                if (transition[i] in root.style) {482                    return true;483                }484            }485        };486        if (support()) {487            return true;488        }489        return false;490    };491    /**492     *  @desc Check the given src is video493     *  @param {String} src494     *  @return {Object} video type495     *  Ex:{ youtube  :  ["//www.youtube.com/watch?v=c0asJgSyxcY", "c0asJgSyxcY"] }496     */497    Plugin.prototype.isVideo = function (src, index) {498        var html;499        if (this.s.dynamic) {500            html = this.s.dynamicEl[index].html;501        } else {502            html = this.items[index].getAttribute('data-html');503        }504        if (!src && html) {505            return {506                html5: true507            };508        }509        var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i);510        var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i);511        var dailymotion = src.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i);512        var vk = src.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);513        if (youtube) {514            return {515                youtube: youtube516            };517        } else if (vimeo) {518            return {519                vimeo: vimeo520            };521        } else if (dailymotion) {522            return {523                dailymotion: dailymotion524            };525        } else if (vk) {526            return {527                vk: vk528            };529        }530    };531    /**532     *  @desc Create image counter533     *  Ex: 1/10534     */535    Plugin.prototype.counter = function () {536        if (this.s.counter) {537            this.outer.querySelector(this.s.appendCounterTo).insertAdjacentHTML('beforeend', '<div id="lg-counter"><span id="lg-counter-current">' + (parseInt(this.index, 10) + 1) + '</span> / <span id="lg-counter-all">' + this.items.length + '</span></div>');538        }539    };540    /**541     *  @desc add sub-html into the slide542     *  @param {Number} index - index of the slide543     */544    Plugin.prototype.addHtml = function (index) {545        var subHtml = null;546        var currentEle;547        if (this.s.dynamic) {548            subHtml = this.s.dynamicEl[index].subHtml;549        } else {550            currentEle = this.items[index];551            subHtml = currentEle.getAttribute('data-sub-html');552            if (this.s.getCaptionFromTitleOrAlt && !subHtml) {553                subHtml = currentEle.getAttribute('title');554                if (subHtml && currentEle.querySelector('img')) {555                    subHtml = currentEle.querySelector('img').getAttribute('alt');556                }557            }558        }559        if (typeof subHtml !== 'undefined' && subHtml !== null) {560            // get first letter of subhtml561            // if first letter starts with . or # get the html form the jQuery object562            var fL = subHtml.substring(0, 1);563            if (fL === '.' || fL === '#') {564                if (this.s.subHtmlSelectorRelative && !this.s.dynamic) {565                    subHtml = currentEle.querySelector(subHtml).innerHTML;566                } else {567                    subHtml = document.querySelector(subHtml).innerHTML;568                }569            }570        } else {571            subHtml = '';572        }573        if (this.s.appendSubHtmlTo === '.lg-sub-html') {574            this.outer.querySelector(this.s.appendSubHtmlTo).innerHTML = subHtml;575        } else {576            this.___slide[index].insertAdjacentHTML('beforeend', subHtml);577        }578        // Add lg-empty-html class if title doesn't exist579        if (typeof subHtml !== 'undefined' && subHtml !== null) {580            if (subHtml === '') {581                _lgUtils2.default.addClass(this.outer.querySelector(this.s.appendSubHtmlTo), 'lg-empty-html');582            } else {583                _lgUtils2.default.removeClass(this.outer.querySelector(this.s.appendSubHtmlTo), 'lg-empty-html');584            }585        }586        _lgUtils2.default.trigger(this.el, 'onAfterAppendSubHtml', {587            index: index588        });589    };590    /**591     *  @desc Preload slides592     *  @param {Number} index - index of the slide593     */594    Plugin.prototype.preload = function (index) {595        var i = 1;596        var j = 1;597        for (i = 1; i <= this.s.preload; i++) {598            if (i >= this.items.length - index) {599                break;600            }601            this.loadContent(index + i, false, 0);602        }603        for (j = 1; j <= this.s.preload; j++) {604            if (index - j < 0) {605                break;606            }607            this.loadContent(index - j, false, 0);608        }609    };610    /**611     *  @desc Load slide content into slide.612     *  @param {Number} index - index of the slide.613     *  @param {Boolean} rec - if true call loadcontent() function again.614     *  @param {Boolean} delay - delay for adding complete class. it is 0 except first time.615     */616    Plugin.prototype.loadContent = function (index, rec, delay) {617        var _this = this;618        var _hasPoster = false;619        var _img;620        var _src;621        var _poster;622        var _srcset;623        var _sizes;624        var _html;625        var getResponsiveSrc = function getResponsiveSrc(srcItms) {626            var rsWidth = [];627            var rsSrc = [];628            for (var i = 0; i < srcItms.length; i++) {629                var __src = srcItms[i].split(' ');630                // Manage empty space631                if (__src[0] === '') {632                    __src.splice(0, 1);633                }634                rsSrc.push(__src[0]);635                rsWidth.push(__src[1]);636            }637            var wWidth = window.innerWidth;638            for (var j = 0; j < rsWidth.length; j++) {639                if (parseInt(rsWidth[j], 10) > wWidth) {640                    _src = rsSrc[j];641                    break;642                }643            }644        };645        if (_this.s.dynamic) {646            if (_this.s.dynamicEl[index].poster) {647                _hasPoster = true;648                _poster = _this.s.dynamicEl[index].poster;649            }650            _html = _this.s.dynamicEl[index].html;651            _src = _this.s.dynamicEl[index].src;652            if (_this.s.dynamicEl[index].responsive) {653                var srcDyItms = _this.s.dynamicEl[index].responsive.split(',');654                getResponsiveSrc(srcDyItms);655            }656            _srcset = _this.s.dynamicEl[index].srcset;657            _sizes = _this.s.dynamicEl[index].sizes;658        } else {659            if (_this.items[index].getAttribute('data-poster')) {660                _hasPoster = true;661                _poster = _this.items[index].getAttribute('data-poster');662            }663            _html = _this.items[index].getAttribute('data-html');664            _src = _this.items[index].getAttribute('href') || _this.items[index].getAttribute('data-src');665            if (_this.items[index].getAttribute('data-responsive')) {666                var srcItms = _this.items[index].getAttribute('data-responsive').split(',');667                getResponsiveSrc(srcItms);668            }669            _srcset = _this.items[index].getAttribute('data-srcset');670            _sizes = _this.items[index].getAttribute('data-sizes');671        }672        //if (_src || _srcset || _sizes || _poster) {673        var iframe = false;674        if (_this.s.dynamic) {675            if (_this.s.dynamicEl[index].iframe) {676                iframe = true;677            }678        } else {679            if (_this.items[index].getAttribute('data-iframe') === 'true') {680                iframe = true;681            }682        }683        var _isVideo = _this.isVideo(_src, index);684        if (!_lgUtils2.default.hasClass(_this.___slide[index], 'lg-loaded')) {685            if (iframe) {686                _this.___slide[index].insertAdjacentHTML('afterbegin', '<div class="lg-video-cont" style="max-width:' + _this.s.iframeMaxWidth + '"><div class="lg-video"><iframe class="lg-object" frameborder="0" src="' + _src + '"  allowfullscreen="true"></iframe></div></div>');687            } else if (_hasPoster) {688                var videoClass = '';689                if (_isVideo && _isVideo.youtube) {690                    videoClass = 'lg-has-youtube';691                } else if (_isVideo && _isVideo.vimeo) {692                    videoClass = 'lg-has-vimeo';693                } else {694                    videoClass = 'lg-has-html5';695                }696                _this.___slide[index].insertAdjacentHTML('beforeend', '<div class="lg-video-cont ' + videoClass + ' "><div class="lg-video"><span class="lg-video-play"></span><img class="lg-object lg-has-poster" src="' + _poster + '" /></div></div>');697            } else if (_isVideo) {698                _this.___slide[index].insertAdjacentHTML('beforeend', '<div class="lg-video-cont "><div class="lg-video"></div></div>');699                _lgUtils2.default.trigger(_this.el, 'hasVideo', {700                    index: index,701                    src: _src,702                    html: _html703                });704            } else {705                _this.___slide[index].insertAdjacentHTML('beforeend', '<div class="lg-img-wrap"><img class="lg-object lg-image" src="' + _src + '" /></div>');706            }707            _lgUtils2.default.trigger(_this.el, 'onAferAppendSlide', {708                index: index709            });710            _img = _this.___slide[index].querySelector('.lg-object');711            if (_sizes) {712                _img.setAttribute('sizes', _sizes);713            }714            if (_srcset) {715                _img.setAttribute('srcset', _srcset);716                try {717                    picturefill({718                        elements: [_img[0]]719                    });720                } catch (e) {721                    console.error('Make sure you have included Picturefill version 2');722                }723            }724            if (this.s.appendSubHtmlTo !== '.lg-sub-html') {725                _this.addHtml(index);726            }727            _lgUtils2.default.addClass(_this.___slide[index], 'lg-loaded');728        }729        _lgUtils2.default.on(_this.___slide[index].querySelector('.lg-object'), 'load.lg error.lg', function () {730            // For first time add some delay for displaying the start animation.731            var _speed = 0;732            // Do not change the delay value because it is required for zoom plugin.733            // If gallery opened from direct url (hash) speed value should be 0734            if (delay && !_lgUtils2.default.hasClass(document.body, 'lg-from-hash')) {735                _speed = delay;736            }737            setTimeout(function () {738                _lgUtils2.default.addClass(_this.___slide[index], 'lg-complete');739                _lgUtils2.default.trigger(_this.el, 'onSlideItemLoad', {740                    index: index,741                    delay: delay || 0742                });743            }, _speed);744        });745        // @todo check load state for html5 videos746        if (_isVideo && _isVideo.html5 && !_hasPoster) {747            _lgUtils2.default.addClass(_this.___slide[index], 'lg-complete');748        }749        if (rec === true) {750            if (!_lgUtils2.default.hasClass(_this.___slide[index], 'lg-complete')) {751                _lgUtils2.default.on(_this.___slide[index].querySelector('.lg-object'), 'load.lg error.lg', function () {752                    _this.preload(index);753                });754            } else {755                _this.preload(index);756            }757        }758        //}759    };760    /**761    *   @desc slide function for lightgallery762        ** Slide() gets call on start763        ** ** Set lg.on true once slide() function gets called.764        ** Call loadContent() on slide() function inside setTimeout765        ** ** On first slide we do not want any animation like slide of fade766        ** ** So on first slide( if lg.on if false that is first slide) loadContent() should start loading immediately767        ** ** Else loadContent() should wait for the transition to complete.768        ** ** So set timeout s.speed + 50769    <=> ** loadContent() will load slide content in to the particular slide770        ** ** It has recursion (rec) parameter. if rec === true loadContent() will call preload() function.771        ** ** preload will execute only when the previous slide is fully loaded (images iframe)772        ** ** avoid simultaneous image load773    <=> ** Preload() will check for s.preload value and call loadContent() again accoring to preload value774        ** loadContent()  <====> Preload();775    776    *   @param {Number} index - index of the slide777    *   @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag778    *   @param {Boolean} fromThumb - true if slide function called via thumbnail click779    */780    Plugin.prototype.slide = function (index, fromTouch, fromThumb) {781        var _prevIndex = 0;782        for (var i = 0; i < this.___slide.length; i++) {783            if (_lgUtils2.default.hasClass(this.___slide[i], 'lg-current')) {784                _prevIndex = i;785                break;786            }787        }788        var _this = this;789        // Prevent if multiple call790        // Required for hsh plugin791        if (_this.lGalleryOn && _prevIndex === index) {792            return;793        }794        var _length = this.___slide.length;795        var _time = _this.lGalleryOn ? this.s.speed : 0;796        var _next = false;797        var _prev = false;798        if (!_this.lgBusy) {799            if (this.s.download) {800                var _src;801                if (_this.s.dynamic) {802                    _src = _this.s.dynamicEl[index].downloadUrl !== false && (_this.s.dynamicEl[index].downloadUrl || _this.s.dynamicEl[index].src);803                } else {804                    _src = _this.items[index].getAttribute('data-download-url') !== 'false' && (_this.items[index].getAttribute('data-download-url') || _this.items[index].getAttribute('href') || _this.items[index].getAttribute('data-src'));805                }806                if (_src) {807                    document.getElementById('lg-download').setAttribute('href', _src);808                    _lgUtils2.default.removeClass(_this.outer, 'lg-hide-download');809                } else {810                    _lgUtils2.default.addClass(_this.outer, 'lg-hide-download');811                }812            }813            _lgUtils2.default.trigger(_this.el, 'onBeforeSlide', {814                prevIndex: _prevIndex,815                index: index,816                fromTouch: fromTouch,817                fromThumb: fromThumb818            });819            _this.lgBusy = true;820            clearTimeout(_this.hideBartimeout);821            // Add title if this.s.appendSubHtmlTo === lg-sub-html822            if (this.s.appendSubHtmlTo === '.lg-sub-html') {823                // wait for slide animation to complete824                setTimeout(function () {825                    _this.addHtml(index);826                }, _time);827            }828            this.arrowDisable(index);829            if (!fromTouch) {830                // remove all transitions831                _lgUtils2.default.addClass(_this.outer, 'lg-no-trans');832                for (var j = 0; j < this.___slide.length; j++) {833                    _lgUtils2.default.removeClass(this.___slide[j], 'lg-prev-slide');834                    _lgUtils2.default.removeClass(this.___slide[j], 'lg-next-slide');835                }836                if (index < _prevIndex) {837                    _prev = true;838                    if (index === 0 && _prevIndex === _length - 1 && !fromThumb) {839                        _prev = false;840                        _next = true;841                    }842                } else if (index > _prevIndex) {843                    _next = true;844                    if (index === _length - 1 && _prevIndex === 0 && !fromThumb) {845                        _prev = true;846                        _next = false;847                    }848                }849                if (_prev) {850                    //prevslide851                    _lgUtils2.default.addClass(this.___slide[index], 'lg-prev-slide');852                    _lgUtils2.default.addClass(this.___slide[_prevIndex], 'lg-next-slide');853                } else if (_next) {854                    // next slide855                    _lgUtils2.default.addClass(this.___slide[index], 'lg-next-slide');856                    _lgUtils2.default.addClass(this.___slide[_prevIndex], 'lg-prev-slide');857                }858                // give 50 ms for browser to add/remove class859                setTimeout(function () {860                    _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-current'), 'lg-current');861                    //_this.$slide.eq(_prevIndex).removeClass('lg-current');862                    _lgUtils2.default.addClass(_this.___slide[index], 'lg-current');863                    // reset all transitions864                    _lgUtils2.default.removeClass(_this.outer, 'lg-no-trans');865                }, 50);866            } else {867                var touchPrev = index - 1;868                var touchNext = index + 1;869                if (index === 0 && _prevIndex === _length - 1) {870                    // next slide871                    touchNext = 0;872                    touchPrev = _length - 1;873                } else if (index === _length - 1 && _prevIndex === 0) {874                    // prev slide875                    touchNext = 0;876                    touchPrev = _length - 1;877                }878                _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-prev-slide'), 'lg-prev-slide');879                _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-current'), 'lg-current');880                _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-next-slide'), 'lg-next-slide');881                _lgUtils2.default.addClass(_this.___slide[touchPrev], 'lg-prev-slide');882                _lgUtils2.default.addClass(_this.___slide[touchNext], 'lg-next-slide');883                _lgUtils2.default.addClass(_this.___slide[index], 'lg-current');884            }885            if (_this.lGalleryOn) {886                setTimeout(function () {887                    _this.loadContent(index, true, 0);888                }, this.s.speed + 50);889                setTimeout(function () {890                    _this.lgBusy = false;891                    _lgUtils2.default.trigger(_this.el, 'onAfterSlide', {892                        prevIndex: _prevIndex,893                        index: index,894                        fromTouch: fromTouch,895                        fromThumb: fromThumb896                    });897                }, this.s.speed);898            } else {899                _this.loadContent(index, true, _this.s.backdropDuration);900                _this.lgBusy = false;901                _lgUtils2.default.trigger(_this.el, 'onAfterSlide', {902                    prevIndex: _prevIndex,903                    index: index,904                    fromTouch: fromTouch,905                    fromThumb: fromThumb906                });907            }908            _this.lGalleryOn = true;909            if (this.s.counter) {910                if (document.getElementById('lg-counter-current')) {911                    document.getElementById('lg-counter-current').innerHTML = index + 1;912                }913            }914        }915    };916    /**917     *  @desc Go to next slide918     *  @param {Boolean} fromTouch - true if slide function called via touch event919     */920    Plugin.prototype.goToNextSlide = function (fromTouch) {921        var _this = this;922        if (!_this.lgBusy) {923            if (_this.index + 1 < _this.___slide.length) {924                _this.index++;925                _lgUtils2.default.trigger(_this.el, 'onBeforeNextSlide', {926                    index: _this.index927                });928                _this.slide(_this.index, fromTouch, false);929            } else {930                if (_this.s.loop) {931                    _this.index = 0;932                    _lgUtils2.default.trigger(_this.el, 'onBeforeNextSlide', {933                        index: _this.index934                    });935                    _this.slide(_this.index, fromTouch, false);936                } else if (_this.s.slideEndAnimatoin) {937                    _lgUtils2.default.addClass(_this.outer, 'lg-right-end');938                    setTimeout(function () {939                        _lgUtils2.default.removeClass(_this.outer, 'lg-right-end');940                    }, 400);941                }942            }943        }944    };945    /**946     *  @desc Go to previous slide947     *  @param {Boolean} fromTouch - true if slide function called via touch event948     */949    Plugin.prototype.goToPrevSlide = function (fromTouch) {950        var _this = this;951        if (!_this.lgBusy) {952            if (_this.index > 0) {953                _this.index--;954                _lgUtils2.default.trigger(_this.el, 'onBeforePrevSlide', {955                    index: _this.index,956                    fromTouch: fromTouch957                });958                _this.slide(_this.index, fromTouch, false);959            } else {960                if (_this.s.loop) {961                    _this.index = _this.items.length - 1;962                    _lgUtils2.default.trigger(_this.el, 'onBeforePrevSlide', {963                        index: _this.index,964                        fromTouch: fromTouch965                    });966                    _this.slide(_this.index, fromTouch, false);967                } else if (_this.s.slideEndAnimatoin) {968                    _lgUtils2.default.addClass(_this.outer, 'lg-left-end');969                    setTimeout(function () {970                        _lgUtils2.default.removeClass(_this.outer, 'lg-left-end');971                    }, 400);972                }973            }974        }975    };976    Plugin.prototype.keyPress = function () {977        var _this = this;978        if (this.items.length > 1) {979            _lgUtils2.default.on(window, 'keyup.lg', function (e) {980                if (_this.items.length > 1) {981                    if (e.keyCode === 37) {982                        e.preventDefault();983                        _this.goToPrevSlide();984                    }985                    if (e.keyCode === 39) {986                        e.preventDefault();987                        _this.goToNextSlide();988                    }989                }990            });991        }992        _lgUtils2.default.on(window, 'keydown.lg', function (e) {993            if (_this.s.escKey === true && e.keyCode === 27) {994                e.preventDefault();995                if (!_lgUtils2.default.hasClass(_this.outer, 'lg-thumb-open')) {996                    _this.destroy();997                } else {998                    _lgUtils2.default.removeClass(_this.outer, 'lg-thumb-open');999                }1000            }1001        });1002    };1003    Plugin.prototype.arrow = function () {1004        var _this = this;1005        _lgUtils2.default.on(this.outer.querySelector('.lg-prev'), 'click.lg', function () {1006            _this.goToPrevSlide();1007        });1008        _lgUtils2.default.on(this.outer.querySelector('.lg-next'), 'click.lg', function () {1009            _this.goToNextSlide();1010        });1011    };1012    Plugin.prototype.arrowDisable = function (index) {1013        // Disable arrows if s.hideControlOnEnd is true1014        if (!this.s.loop && this.s.hideControlOnEnd) {1015            var next = this.outer.querySelector('.lg-next');1016            var prev = this.outer.querySelector('.lg-prev');1017            if (index + 1 < this.___slide.length) {1018                next.removeAttribute('disabled');1019                _lgUtils2.default.removeClass(next, 'disabled');1020            } else {1021                next.setAttribute('disabled', 'disabled');1022                _lgUtils2.default.addClass(next, 'disabled');1023            }1024            if (index > 0) {1025                prev.removeAttribute('disabled');1026                _lgUtils2.default.removeClass(prev, 'disabled');1027            } else {1028                next.setAttribute('disabled', 'disabled');1029                _lgUtils2.default.addClass(next, 'disabled');1030            }1031        }1032    };1033    Plugin.prototype.setTranslate = function (el, xValue, yValue) {1034        // jQuery supports Automatic CSS prefixing since jQuery 1.8.01035        if (this.s.useLeft) {1036            el.style.left = xValue;1037        } else {1038            _lgUtils2.default.setVendor(el, 'Transform', 'translate3d(' + xValue + 'px, ' + yValue + 'px, 0px)');1039        }1040    };1041    Plugin.prototype.touchMove = function (startCoords, endCoords) {1042        var distance = endCoords - startCoords;1043        if (Math.abs(distance) > 15) {1044            // reset opacity and transition duration1045            _lgUtils2.default.addClass(this.outer, 'lg-dragging');1046            // move current slide1047            this.setTranslate(this.___slide[this.index], distance, 0);1048            // move next and prev slide with current slide1049            this.setTranslate(document.querySelector('.lg-prev-slide'), -this.___slide[this.index].clientWidth + distance, 0);1050            this.setTranslate(document.querySelector('.lg-next-slide'), this.___slide[this.index].clientWidth + distance, 0);1051        }1052    };1053    Plugin.prototype.touchEnd = function (distance) {1054        var _this = this;1055        // keep slide animation for any mode while dragg/swipe1056        if (_this.s.mode !== 'lg-slide') {1057            _lgUtils2.default.addClass(_this.outer, 'lg-slide');1058        }1059        for (var i = 0; i < this.___slide.length; i++) {1060            if (!_lgUtils2.default.hasClass(this.___slide[i], 'lg-current') && !_lgUtils2.default.hasClass(this.___slide[i], 'lg-prev-slide') && !_lgUtils2.default.hasClass(this.___slide[i], 'lg-next-slide')) {1061                this.___slide[i].style.opacity = '0';1062            }1063        }1064        // set transition duration1065        setTimeout(function () {1066            _lgUtils2.default.removeClass(_this.outer, 'lg-dragging');1067            if (distance < 0 && Math.abs(distance) > _this.s.swipeThreshold) {1068                _this.goToNextSlide(true);1069            } else if (distance > 0 && Math.abs(distance) > _this.s.swipeThreshold) {1070                _this.goToPrevSlide(true);1071            } else if (Math.abs(distance) < 5) {1072                // Trigger click if distance is less than 5 pix1073                _lgUtils2.default.trigger(_this.el, 'onSlideClick');1074            }1075            for (var i = 0; i < _this.___slide.length; i++) {1076                _this.___slide[i].removeAttribute('style');1077            }1078        });1079        // remove slide class once drag/swipe is completed if mode is not slide1080        setTimeout(function () {1081            if (!_lgUtils2.default.hasClass(_this.outer, 'lg-dragging') && _this.s.mode !== 'lg-slide') {1082                _lgUtils2.default.removeClass(_this.outer, 'lg-slide');1083            }1084        }, _this.s.speed + 100);1085    };1086    Plugin.prototype.enableSwipe = function () {1087        var _this = this;1088        var startCoords = 0;1089        var endCoords = 0;1090        var isMoved = false;1091        if (_this.s.enableSwipe && _this.isTouch && _this.doCss()) {1092            for (var i = 0; i < _this.___slide.length; i++) {1093                /*jshint loopfunc: true */1094                _lgUtils2.default.on(_this.___slide[i], 'touchstart.lg', function (e) {1095                    if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed') && !_this.lgBusy) {1096                        e.preventDefault();1097                        _this.manageSwipeClass();1098                        startCoords = e.targetTouches[0].pageX;1099                    }1100                });1101            }1102            for (var j = 0; j < _this.___slide.length; j++) {1103                /*jshint loopfunc: true */1104                _lgUtils2.default.on(_this.___slide[j], 'touchmove.lg', function (e) {1105                    if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {1106                        e.preventDefault();1107                        endCoords = e.targetTouches[0].pageX;1108                        _this.touchMove(startCoords, endCoords);1109                        isMoved = true;1110                    }1111                });1112            }1113            for (var k = 0; k < _this.___slide.length; k++) {1114                /*jshint loopfunc: true */1115                _lgUtils2.default.on(_this.___slide[k], 'touchend.lg', function () {1116                    if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {1117                        if (isMoved) {1118                            isMoved = false;1119                            _this.touchEnd(endCoords - startCoords);1120                        } else {1121                            _lgUtils2.default.trigger(_this.el, 'onSlideClick');1122                        }1123                    }1124                });1125            }1126        }1127    };1128    Plugin.prototype.enableDrag = function () {1129        var _this = this;1130        var startCoords = 0;1131        var endCoords = 0;1132        var isDraging = false;1133        var isMoved = false;1134        if (_this.s.enableDrag && !_this.isTouch && _this.doCss()) {1135            for (var i = 0; i < _this.___slide.length; i++) {1136                /*jshint loopfunc: true */1137                _lgUtils2.default.on(_this.___slide[i], 'mousedown.lg', function (e) {1138                    // execute only on .lg-object1139                    if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {1140                        if (_lgUtils2.default.hasClass(e.target, 'lg-object') || _lgUtils2.default.hasClass(e.target, 'lg-video-play')) {1141                            e.preventDefault();1142                            if (!_this.lgBusy) {1143                                _this.manageSwipeClass();1144                                startCoords = e.pageX;1145                                isDraging = true;1146                                // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=267231147                                _this.outer.scrollLeft += 1;1148                                _this.outer.scrollLeft -= 1;1149                                // *1150                                _lgUtils2.default.removeClass(_this.outer, 'lg-grab');1151                                _lgUtils2.default.addClass(_this.outer, 'lg-grabbing');1152                                _lgUtils2.default.trigger(_this.el, 'onDragstart');1153                            }1154                        }1155                    }1156                });1157            }1158            _lgUtils2.default.on(window, 'mousemove.lg', function (e) {1159                if (isDraging) {1160                    isMoved = true;1161                    endCoords = e.pageX;1162                    _this.touchMove(startCoords, endCoords);1163                    _lgUtils2.default.trigger(_this.el, 'onDragmove');1164                }1165            });1166            _lgUtils2.default.on(window, 'mouseup.lg', function (e) {1167                if (isMoved) {1168                    isMoved = false;1169                    _this.touchEnd(endCoords - startCoords);1170                    _lgUtils2.default.trigger(_this.el, 'onDragend');1171                } else if (_lgUtils2.default.hasClass(e.target, 'lg-object') || _lgUtils2.default.hasClass(e.target, 'lg-video-play')) {1172                    _lgUtils2.default.trigger(_this.el, 'onSlideClick');1173                }1174                // Prevent execution on click1175                if (isDraging) {1176                    isDraging = false;1177                    _lgUtils2.default.removeClass(_this.outer, 'lg-grabbing');1178                    _lgUtils2.default.addClass(_this.outer, 'lg-grab');1179                }1180            });1181        }1182    };1183    Plugin.prototype.manageSwipeClass = function () {1184        var touchNext = this.index + 1;1185        var touchPrev = this.index - 1;1186        var length = this.___slide.length;1187        if (this.s.loop) {1188            if (this.index === 0) {1189                touchPrev = length - 1;1190            } else if (this.index === length - 1) {1191                touchNext = 0;1192            }1193        }1194        for (var i = 0; i < this.___slide.length; i++) {1195            _lgUtils2.default.removeClass(this.___slide[i], 'lg-next-slide');1196            _lgUtils2.default.removeClass(this.___slide[i], 'lg-prev-slide');1197        }1198        if (touchPrev > -1) {1199            _lgUtils2.default.addClass(this.___slide[touchPrev], 'lg-prev-slide');1200        }1201        _lgUtils2.default.addClass(this.___slide[touchNext], 'lg-next-slide');1202    };1203    Plugin.prototype.mousewheel = function () {1204        var _this = this;1205        _lgUtils2.default.on(_this.outer, 'mousewheel.lg', function (e) {1206            if (!e.deltaY) {1207                return;1208            }1209            if (e.deltaY > 0) {1210                _this.goToPrevSlide();1211            } else {1212                _this.goToNextSlide();1213            }1214            e.preventDefault();1215        });1216    };1217    Plugin.prototype.closeGallery = function () {1218        var _this = this;1219        var mousedown = false;1220        _lgUtils2.default.on(this.outer.querySelector('.lg-close'), 'click.lg', function () {1221            _this.destroy();1222        });1223        if (_this.s.closable) {1224            // If you drag the slide and release outside gallery gets close on chrome1225            // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer1226            _lgUtils2.default.on(_this.outer, 'mousedown.lg', function (e) {1227                if (_lgUtils2.default.hasClass(e.target, 'lg-outer') || _lgUtils2.default.hasClass(e.target, 'lg-item') || _lgUtils2.default.hasClass(e.target, 'lg-img-wrap')) {1228                    mousedown = true;1229                } else {1230                    mousedown = false;1231                }1232            });1233            _lgUtils2.default.on(_this.outer, 'mouseup.lg', function (e) {1234                if (_lgUtils2.default.hasClass(e.target, 'lg-outer') || _lgUtils2.default.hasClass(e.target, 'lg-item') || _lgUtils2.default.hasClass(e.target, 'lg-img-wrap') && mousedown) {1235                    if (!_lgUtils2.default.hasClass(_this.outer, 'lg-dragging')) {1236                        _this.destroy();1237                    }1238                }1239            });1240        }1241    };1242    Plugin.prototype.destroy = function (d) {1243        var _this = this;1244        if (!d) {1245            _lgUtils2.default.trigger(_this.el, 'onBeforeClose');1246        }1247        document.body.scrollTop = _this.prevScrollTop;1248        document.documentElement.scrollTop = _this.prevScrollTop;1249        /**1250         * if d is false or undefined destroy will only close the gallery1251         * plugins instance remains with the element1252         *1253         * if d is true destroy will completely remove the plugin1254         */1255        if (d) {1256            if (!_this.s.dynamic) {1257                // only when not using dynamic mode is $items a jquery collection1258                for (var i = 0; i < this.items.length; i++) {1259                    _lgUtils2.default.off(this.items[i], '.lg');1260                    _lgUtils2.default.off(this.items[i], '.lgcustom');1261                }1262            }1263            var lguid = _this.el.getAttribute('lg-uid');1264            delete window.lgData[lguid];1265            _this.el.removeAttribute('lg-uid');1266        }1267        // Unbind all events added by lightGallery1268        _lgUtils2.default.off(this.el, '.lgtm');1269        // Distroy all lightGallery modules1270        for (var key in window.lgModules) {1271            if (_this.modules[key]) {1272                _this.modules[key].destroy();1273            }1274        }1275        this.lGalleryOn = false;1276        clearTimeout(_this.hideBartimeout);1277        this.hideBartimeout = false;1278        _lgUtils2.default.off(window, '.lg');1279        _lgUtils2.default.removeClass(document.body, 'lg-on');1280        _lgUtils2.default.removeClass(document.body, 'lg-from-hash');1281        if (_this.outer) {1282            _lgUtils2.default.removeClass(_this.outer, 'lg-visible');1283        }1284        _lgUtils2.default.removeClass(document.querySelector('.lg-backdrop'), 'in');1285        setTimeout(function () {1286            try {1287                if (_this.outer) {1288                    _this.outer.parentNode.removeChild(_this.outer);1289                }1290                if (document.querySelector('.lg-backdrop')) {1291                    document.querySelector('.lg-backdrop').parentNode.removeChild(document.querySelector('.lg-backdrop'));1292                }1293                if (!d) {1294                    _lgUtils2.default.trigger(_this.el, 'onCloseAfter');1295                }1296            } catch (err) {}1297        }, _this.s.backdropDuration + 50);1298    };1299    window.lightGallery = function (el, options) {1300        if (!el) {1301            return;1302        }1303        try {1304            if (!el.getAttribute('lg-uid')) {1305                var uid = 'lg' + window.lgData.uid++;1306                window.lgData[uid] = new Plugin(el, options);1307                el.setAttribute('lg-uid', uid);1308            } else {1309                try {1310                    window.lgData[el.getAttribute('lg-uid')].init();1311                } catch (err) {1312                    console.error('lightGallery has not initiated properly');1313                }1314            }1315        } catch (err) {1316            console.error('lightGallery has not initiated properly');1317        }1318    };1319});1320},{"./lg-utils":1}]},{},[2])(2)...Service.js
Source:Service.js  
1BASE.require([2    "LG.core.dataModel.core.AgencyRole",3    "LG.core.dataModel.core.App",4    "LG.core.dataModel.core.Authentication",5    "LG.core.dataModel.core.AuthenticationFactor",6    "LG.core.dataModel.core.Company",7    "LG.core.dataModel.core.CompanyAddress",8    "LG.core.dataModel.core.CompanyAddressPhoneNumber",9    "LG.core.dataModel.core.CompanyAddressUltiProAccount",10    "LG.core.dataModel.core.CompanyEmailAddress",11    "LG.core.dataModel.core.CompanyName",12    "LG.core.dataModel.core.CompanyPhoneNumber",13    "LG.core.dataModel.core.CompanyUltiProAccount",14    "LG.core.dataModel.core.DatabaseCredential",15    "LG.core.dataModel.core.GoogleAuthFactor",16    "LG.core.dataModel.core.PeopleGroup",17    "LG.core.dataModel.core.LdapCredential",18    "LG.core.dataModel.core.Permission",19    "LG.core.dataModel.core.PermissionGroup",20    "LG.core.dataModel.core.Person",21    "LG.core.dataModel.core.PersonEmailAddress",22    "LG.core.dataModel.core.PersonLdapAccount",23    "LG.core.dataModel.core.PersonPhoneNumber",24    "LG.core.dataModel.core.PersonUltiProAccount",25    "LG.core.dataModel.core.ProducerRoleDataPoint",26    "LG.core.dataModel.core.ProfilePictureAttachment",27    "LG.core.dataModel.core.PermissionGroupToPermission",28    "LG.core.dataModel.core.PersonToPeopleGroup",29    "LG.core.dataModel.core.PersonToPermission",30    "LG.core.dataModel.core.PersonToPermissionGroup",31    "LG.core.dataModel.core.PermissionGroupToPeopleGroup",32    "LG.core.dataModel.core.PeopleGroupToPermission",33    "LG.rest.Service",34    "LG.JsonAjaxProvider",35    "LG.core.dataModel.core.LGEmployeeRole",36    "LG.core.dataModel.core.FullTimeEquivalent",37    "LG.core.dataModel.core.JobRole",38    "LG.core.dataModel.core.JobRoleToDepartment",39    "LG.core.dataModel.core.JobRoleToDivision",40    "LG.core.dataModel.core.JobRoleToTeam",41    "LG.core.dataModel.core.JobRoleType",42    "LG.core.dataModel.core.JobRoleDataPoint",43    "LG.core.dataModel.core.LGEmployeeRoleTitle",44    "LG.core.dataModel.core.PercentOfFullTimeEquivalent",45    "LG.core.dataModel.core.SupervisorJobRole",46    "LG.core.dataModel.core.CompanyDivision",47    "LG.core.dataModel.core.CompanyTeam",48    "LG.core.dataModel.core.CompanyDepartment",49    "LG.core.dataModel.core.LGEmployeeRoleUltiProAccount",50    "BASE.web.Url"51    52], function () {53    BASE.namespace("LG.core.dataModel.core");54    LG.core.dataModel.core.Service = (function (Super) {55        var Service = function (appId, token) {56            var self = this;57            if (!(self instanceof arguments.callee)) {58                return new Service(appId, token);59            }60            Super.call(self);61            if (document) {62                var location = new BASE.web.Url(document.location.href);63                if (location.getHost() === "localhost") { // local debugging64                    self.host = "https://api.leavitt.com";65                } else { // published on my.leavitt.com or in a node server66                    self.host = "/webapi";67                }68            } else {69                self.host = "https://api.leavitt.com";70            }71            72            self.ajaxProvider = new LG.JsonAjaxProvider(appId, token);73            self.typeUri.add(LG.core.dataModel.core.Authentication, "/Core/Authentications");74            self.serverTypeToClientType.add("Authentication", LG.core.dataModel.core.Authentication);75            self.typeUri.add(LG.core.dataModel.core.AuthenticationFactor, "/Core/AuthenticationFactors");76            self.serverTypeToClientType.add("AuthenticationFactor", LG.core.dataModel.core.AuthenticationFactor);77            self.typeUri.add(LG.core.dataModel.core.AgencyRole, "/Core/AgencyRoles");78            self.serverTypeToClientType.add("AgencyRole", LG.core.dataModel.core.AgencyRole);79            self.typeUri.add(LG.core.dataModel.core.App, "/Core/Apps");80            self.serverTypeToClientType.add("App", LG.core.dataModel.core.App);81            self.typeUri.add(LG.core.dataModel.core.AppCategory, "/Core/AppCategories");82            self.serverTypeToClientType.add("AppCategory", LG.core.dataModel.core.AppCategory);83            self.typeUri.add(LG.core.dataModel.core.CompanyAddress, "/Core/CompanyAddresses");84            self.serverTypeToClientType.add("CompanyAddress", LG.core.dataModel.core.CompanyAddress);85            self.typeUri.add(LG.core.dataModel.core.CompanyAddressPhoneNumber, "/Core/CompanyAddressPhoneNumbers");86            self.serverTypeToClientType.add("CompanyAddressPhoneNumber", LG.core.dataModel.core.CompanyAddressPhoneNumber);87            self.typeUri.add(LG.core.dataModel.core.CompanyAddressUltiProAccount, "/Core/CompanyAddressUltiProAccounts");88            self.serverTypeToClientType.add("CompanyAddressUltiProAccount", LG.core.dataModel.core.CompanyAddressUltiProAccount);89            self.typeUri.add(LG.core.dataModel.core.Company, "/Core/Companies");90            self.serverTypeToClientType.add("Company", LG.core.dataModel.core.Company);91            self.typeUri.add(LG.core.dataModel.core.CompanyEmailAddress, "/Core/CompanyEmailAddresses");92            self.serverTypeToClientType.add("CompanyEmailAddress", LG.core.dataModel.core.CompanyEmailAddress);93            self.typeUri.add(LG.core.dataModel.core.CompanyName, "/Core/CompanyNames");94            self.serverTypeToClientType.add("CompanyName", LG.core.dataModel.core.CompanyName);95            self.typeUri.add(LG.core.dataModel.core.CompanyPhoneNumber, "/Core/CompanyPhoneNumbers");96            self.serverTypeToClientType.add("CompanyPhoneNumber", LG.core.dataModel.core.CompanyPhoneNumber);97            self.typeUri.add(LG.core.dataModel.core.CompanyUltiProAccount, "/Core/CompanyUltiProAccounts");98            self.serverTypeToClientType.add("CompanyUltiProAccount", LG.core.dataModel.core.CompanyUltiProAccount);99            self.typeUri.add(LG.core.dataModel.core.DatabaseCredential, "/Core/DatabaseCredentials");100            self.serverTypeToClientType.add("DatabaseCredential", LG.core.dataModel.core.DatabaseCredential);101            self.typeUri.add(LG.core.dataModel.core.LGEmployeeRole, "/Core/LGEmployeeRoles");102            self.serverTypeToClientType.add("LGEmployeeRole", LG.core.dataModel.core.LGEmployeeRole);103            self.typeUri.add(LG.core.dataModel.core.LGEmployeeRoleUltiProAccount, "/Core/LGEmployeeRoleUltiProAccounts");104            self.serverTypeToClientType.add("LGEmployeeRoleUltiProAccount", LG.core.dataModel.core.LGEmployeeRoleUltiProAccount);105            self.typeUri.add(LG.core.dataModel.core.GoogleAuthFactor, "/Core/GoogleAuthFactors");106            self.serverTypeToClientType.add("GoogleAuthFactor", LG.core.dataModel.core.GoogleAuthFactor);107            self.typeUri.add(LG.core.dataModel.core.PeopleGroup, "/Core/PeopleGroups");108            self.serverTypeToClientType.add("PeopleGroup", LG.core.dataModel.core.PeopleGroup);109            self.typeUri.add(LG.core.dataModel.core.LdapCredential, "/Core/LdapCredentials");110            self.serverTypeToClientType.add("LdapCredential", LG.core.dataModel.core.LdapCredential);111            self.typeUri.add(LG.core.dataModel.core.Credential, "/Core/Credentials");112            self.serverTypeToClientType.add("Credential", LG.core.dataModel.core.Credential);113            self.typeUri.add(LG.core.dataModel.core.Permission, "/Core/Permissions");114            self.serverTypeToClientType.add("Permission", LG.core.dataModel.core.Permission);115            self.typeUri.add(LG.core.dataModel.core.Person, "/Core/People");116            self.serverTypeToClientType.add("Person", LG.core.dataModel.core.Person);117            self.typeUri.add(LG.core.dataModel.core.PersonEmailAddress, "/Core/PersonEmailAddresses");118            self.serverTypeToClientType.add("PersonEmailAddress", LG.core.dataModel.core.PersonEmailAddress);119            self.typeUri.add(LG.core.dataModel.core.PersonPhoneNumber, "/Core/PersonPhoneNumbers");120            self.serverTypeToClientType.add("PersonPhoneNumber", LG.core.dataModel.core.PersonPhoneNumber);121            self.typeUri.add(LG.core.dataModel.core.PersonLdapAccount, "/Core/PersonLdapAccounts");122            self.serverTypeToClientType.add("PersonLdapAccount", LG.core.dataModel.core.PersonLdapAccount);123            self.typeUri.add(LG.core.dataModel.core.PersonUltiProAccount, "/Core/PersonUltiProAccount");124            self.serverTypeToClientType.add("PersonUltiProAccount", LG.core.dataModel.core.PersonUltiProAccount);125            self.typeUri.add(LG.core.dataModel.core.ProfilePictureAttachment, "/Core/ProfilePictureAttachments");126            self.serverTypeToClientType.add("ProfilePictureAttachment", LG.core.dataModel.core.ProfilePictureAttachment);127            self.typeUri.add(LG.core.dataModel.core.PermissionGroup, "/Core/PermissionGroups");128            self.serverTypeToClientType.add("PermissionGroup", LG.core.dataModel.core.PermissionGroup);129            self.typeUri.add(LG.core.dataModel.core.PersonToPermission, "/Core/PersonToPermission");130            self.typeUri.add(LG.core.dataModel.core.PersonToPermissionGroup, "/Core/PersonToPermissionGroup");131            self.typeUri.add(LG.core.dataModel.core.PermissionGroupToPermission, "/Core/PermissionToPermissionGroup");132            self.typeUri.add(LG.core.dataModel.core.PeopleGroupToPermission, "/Core/PermissionToPeopleGroup");133            self.typeUri.add(LG.core.dataModel.core.PersonToPeopleGroup, "/Core/PersonToGroup");134            self.typeUri.add(LG.core.dataModel.core.PermissionGroupToPeopleGroup, "/Core/PeopleGroupToPermissionGroup");135            // This is the same as above, but I'm lazily doing it this way instead.136            var serverUrisToTypes = {137                "/Core/JobRoles": LG.core.dataModel.core.JobRole,138                "/Core/JobRoleToDepartments": LG.core.dataModel.core.JobRoleToDepartment,139                "/Core/JobRoleToDivisions": LG.core.dataModel.core.JobRoleToDivision,140                "/Core/JobRoleToTeams": LG.core.dataModel.core.JobRoleToTeam,141                "/Core/JobRoleTypes": LG.core.dataModel.core.JobRoleType,142                "/Core/LGEmployeeRoleTitles": LG.core.dataModel.core.LGEmployeeRoleTitle,143                "/Core/PercentOfFullTimeEquivalents": LG.core.dataModel.core.PercentOfFullTimeEquivalent,144                "/Core/FullTimeEquivalents": LG.core.dataModel.core.FullTimeEquivalent,145                "/Core/SupervisorJobRoles": LG.core.dataModel.core.SupervisorJobRole,146                "/Core/CompanyDivisions": LG.core.dataModel.core.CompanyDivision,147                "/Core/CompanyTeams": LG.core.dataModel.core.CompanyTeam,148                "/Core/CompanyDepartments": LG.core.dataModel.core.CompanyDepartment,149                "/Core/ProducerRoleDataPoints": LG.core.dataModel.core.ProducerRoleDataPoint,150                "/Core/JobRoleDataPoints": LG.core.dataModel.core.JobRoleDataPoint151            };152            for (var uri in serverUrisToTypes) {153                self.typeUri.add(serverUrisToTypes[uri], uri);154            }155            var serverTypesToClientTypes = {156                "JobRole": LG.core.dataModel.core.JobRole,157                "JobRoleToDivision": LG.core.dataModel.core.JobRoleToDivision,158                "JobRoleToDepartment": LG.core.dataModel.core.JobRoleToDepartment,159                "JobRoleToTeam": LG.core.dataModel.core.JobRoleToTeam,160                "JobRoleType": LG.core.dataModel.core.JobRoleType,161                "LGEmployeeRoleTitle": LG.core.dataModel.core.LGEmployeeRoleTitle,162                "PercentOfFullTimeEquivalent": LG.core.dataModel.core.PercentOfFullTimeEquivalent,163                "FullTimeEquivalent": LG.core.dataModel.core.FullTimeEquivalent,164                "SupervisorJobRole": LG.core.dataModel.core.SupervisorJobRole,165                "CompanyDivision": LG.core.dataModel.core.CompanyDivision,166                "CompanyTeam": LG.core.dataModel.core.CompanyTeam,167                "CompanyDepartment": LG.core.dataModel.core.CompanyDepartment,168                "ProducerRoleDataPoint": LG.core.dataModel.core.ProducerRoleDataPoint,169                "JobRoleDataPoint": LG.core.dataModel.core.JobRoleDataPoint170            };171            for (var type in serverTypesToClientTypes) {172                self.serverTypeToClientType.add(type, serverTypesToClientTypes[type]);173            }174            self.relationships = {175                oneToOne: [{176                    type: LG.core.dataModel.core.Person,177                    hasKey: "id",178                    hasOne: "ldapAccount",179                    ofType: LG.core.dataModel.core.PersonLdapAccount,180                    withKey: "id",181                    withForeignKey: "id",182                    withOne: "person"183                }, {184                    type: LG.core.dataModel.core.Company,185                    hasKey: "id",186                    hasOne: "ultiProAccount",187                    ofType: LG.core.dataModel.core.CompanyUltiProAccount,188                    withKey: "id",189                    withForeignKey: "id",190                    withOne: "company"191                }, {192                    type: LG.core.dataModel.core.LGEmployeeRole,193                    hasKey: "id",194                    hasOne: "LGEmployeeRoleUltiProAccount",195                    ofType: LG.core.dataModel.core.LGEmployeeRoleUltiProAccount,196                    withKey: "id",197                    withForeignKey: "id",198                    withOne: "LGEmployeeRole"199                }, {200                    type: LG.core.dataModel.core.JobRole,201                    hasKey: "id",202                    hasOne: "jobRoleDataPoint",203                    ofType: LG.core.dataModel.core.JobRoleDataPoint,204                    withKey: "id",205                    withForeignKey: "jobRoleId",206                    withOne: "jobRole"207                }],208                oneToMany: [{209                    type: LG.core.dataModel.core.Company,210                    hasKey: "id",211                    hasMany: "agencyRoles",212                    ofType: LG.core.dataModel.core.AgencyRole,213                    withKey: "id",214                    withForeignKey: "companyId",215                    withOne: "company"216                }, {217                    type: LG.core.dataModel.core.Person,218                    hasKey: "id",219                    hasMany: "ultiProAccounts",220                    ofType: LG.core.dataModel.core.PersonUltiProAccount,221                    withKey: "id",222                    withForeignKey: "personId",223                    withOne: "person"224                }, {225                    type: LG.core.dataModel.core.Company,226                    hasKey: "id",227                    hasMany: "addresses",228                    ofType: LG.core.dataModel.core.CompanyAddress,229                    withKey: "id",230                    withForeignKey: "companyId",231                    withOne: "company"232                }, {233                    type: LG.core.dataModel.core.Permission,234                    hasKey: "id",235                    hasMany: "applications",236                    ofType: LG.core.dataModel.core.App,237                    withKey: "id",238                    withForeignKey: "accessPermissionId",239                    withOne: "accessPermission",240                    optional: true241                }, {242                    type: LG.core.dataModel.core.Company,243                    hasKey: "id",244                    hasMany: "names",245                    ofType: LG.core.dataModel.core.CompanyName,246                    withKey: "id",247                    withForeignKey: "companyId",248                    withOne: "company"249                }, {250                    type: LG.core.dataModel.core.Company,251                    hasKey: "id",252                    hasMany: "emailAddresses",253                    ofType: LG.core.dataModel.core.CompanyEmailAddress,254                    withKey: "id",255                    withForeignKey: "companyId",256                    withOne: "company"257                }, {258                    type: LG.core.dataModel.core.Company,259                    hasKey: "id",260                    hasMany: "phoneNumbers",261                    ofType: LG.core.dataModel.core.CompanyPhoneNumber,262                    withKey: "id",263                    withForeignKey: "companyId",264                    withOne: "company"265                }, {266                    type: LG.core.dataModel.core.Company,267                    hasKey: "id",268                    hasMany: "roles",269                    ofType: LG.core.dataModel.core.CompanyRole,270                    withKey: "id",271                    withForeignKey: "companyId",272                    withOne: "company"273                }, {274                    type: LG.core.dataModel.core.CompanyAddress,275                    hasKey: "id",276                    hasMany: "LGEmployeeRoles",277                    ofType: LG.core.dataModel.core.LGEmployeeRole,278                    withKey: "id",279                    withForeignKey: "companyAddressId",280                    withOne: "companyAddress"281                }, {282                    type: LG.core.dataModel.core.LGEmployeeRole,283                    hasKey: "id",284                    hasMany: "FTEs",285                    ofType: LG.core.dataModel.core.FullTimeEquivalent,286                    withKey: "id",287                    withForeignKey: "LGEmployeeRoleId",288                    withOne: "LGEmployeeRole",289                    optional: true290                }, {291                    type: LG.core.dataModel.core.Person,292                    hasKey: "id",293                    hasMany: "credentials",294                    ofType: LG.core.dataModel.core.LdapCredential,295                    withKey: "id",296                    withForeignKey: "personId",297                    withOne: "person"298                }, {299                    type: LG.core.dataModel.core.LdapCredential,300                    hasKey: "id",301                    hasMany: "authenticationFactors",302                    ofType: LG.core.dataModel.core.AuthenticationFactor,303                    withKey: "id",304                    withForeignKey: "credentialId",305                    withOne: "credential"306                }, {307                    type: LG.core.dataModel.core.LdapCredential,308                    hasKey: "id",309                    hasMany: "authentications",310                    ofType: LG.core.dataModel.core.Authentication,311                    withKey: "id",312                    withForeignKey: "credentialId",313                    withOne: "credential"314                }, {315                    type: LG.core.dataModel.core.Person,316                    hasKey: "id",317                    hasMany: "emailAddresses",318                    ofType: LG.core.dataModel.core.PersonEmailAddress,319                    withKey: "id",320                    withForeignKey: "personId",321                    withOne: "person"322                }, {323                    type: LG.core.dataModel.core.Person,324                    hasKey: "id",325                    hasMany: "roles",326                    ofType: LG.core.dataModel.core.LGEmployeeRole,327                    withKey: "id",328                    withForeignKey: "personId",329                    withOne: "person"330                }, {331                    type: LG.core.dataModel.core.Person,332                    hasKey: "id",333                    hasMany: "phoneNumbers",334                    ofType: LG.core.dataModel.core.PersonPhoneNumber,335                    withKey: "id",336                    withForeignKey: "personId",337                    withOne: "person"338                }, {339                    type: LG.core.dataModel.core.App,340                    hasKey: "id",341                    hasMany: "permissions",342                    ofType: LG.core.dataModel.core.Permission,343                    withKey: "id",344                    withForeignKey: "applicationId",345                    withOne: "application"346                }, {347                    type: LG.core.dataModel.core.AppCategory,348                    hasKey: "id",349                    hasMany: "apps",350                    ofType: LG.core.dataModel.core.App,351                    withKey: "id",352                    withForeignKey: "categoryId",353                    withOne: "category"354                }, {355                    type: LG.core.dataModel.core.LGEmployeeRole,356                    hasKey: "id",357                    hasMany: "jobRoles",358                    ofType: LG.core.dataModel.core.JobRole,359                    withKey: "id",360                    withForeignKey: "LGEmployeeRoleId",361                    withOne: "LGEmployeeRole"362                }, {363                    type: LG.core.dataModel.core.JobRole,364                    hasKey: "id",365                    hasMany: "percentOfFullTimeEquivalents",366                    ofType: LG.core.dataModel.core.PercentOfFullTimeEquivalent,367                    withKey: "id",368                    withForeignKey: "jobRoleId",369                    withOne: "jobRole"370                }, {371                    type: LG.core.dataModel.core.JobRole,372                    hasKey: "id",373                    hasMany: "supervisorJobRoles",374                    ofType: LG.core.dataModel.core.SupervisorJobRole,375                    withKey: "id",376                    withForeignKey: "jobRoleId",377                    withOne: "jobRole"378                }, {379                    type: LG.core.dataModel.core.JobRole,380                    hasKey: "id",381                    hasMany: "directReports",382                    ofType: LG.core.dataModel.core.SupervisorJobRole,383                    withKey: "id",384                    withForeignKey: "supervisorRoleId",385                    withOne: "supervisorRole"386                }, {387                    type: LG.core.dataModel.core.JobRoleType,388                    hasKey: "id",389                    hasMany: "jobRoles",390                    ofType: LG.core.dataModel.core.JobRole,391                    withKey: "id",392                    withForeignKey: "jobRoleTypeId",393                    withOne: "jobRoleType"394                }, {395                    type: LG.core.dataModel.core.LGEmployeeRole,396                    hasKey: "id",397                    hasMany: "titles",398                    ofType: LG.core.dataModel.core.LGEmployeeRoleTitle,399                    withKey: "id",400                    withForeignKey: "LGEmployeeRoleId",401                    withOne: "LGEmployeeRole"402                }, {403                    type: LG.core.dataModel.core.Company,404                    hasKey: "id",405                    hasMany: "companyDivisions",406                    ofType: LG.core.dataModel.core.CompanyDivision,407                    withKey: "id",408                    withForeignKey: "companyId",409                    withOne: "company"410                }, {411                    type: LG.core.dataModel.core.Company,412                    hasKey: "id",413                    hasMany: "companyTeams",414                    ofType: LG.core.dataModel.core.CompanyTeam,415                    withKey: "id",416                    withForeignKey: "companyId",417                    withOne: "company"418                }, {419                    type: LG.core.dataModel.core.Company,420                    hasKey: "id",421                    hasMany: "companyDepartments",422                    ofType: LG.core.dataModel.core.CompanyDepartment,423                    withKey: "id",424                    withForeignKey: "companyId",425                    withOne: "company"426                }, {427                    type: LG.core.dataModel.core.Company,428                    hasKey: "id",429                    hasMany: "jobRoles",430                    ofType: LG.core.dataModel.core.JobRole,431                    withKey: "id",432                    withForeignKey: "companyId",433                    withOne: "company"434                }, {435                    type: LG.core.dataModel.core.JobRole,436                    hasKey: "id",437                    hasMany: "jobRoleToDivisions",438                    ofType: LG.core.dataModel.core.JobRoleToDivision,439                    withKey: "id",440                    withForeignKey: "jobRoleId",441                    withOne: "jobRole"442                }, {443                    type: LG.core.dataModel.core.JobRole,444                    hasKey: "id",445                    hasMany: "jobRoleToDepartments",446                    ofType: LG.core.dataModel.core.JobRoleToDepartment,447                    withKey: "id",448                    withForeignKey: "jobRoleId",449                    withOne: "jobRole"450                }, {451                    type: LG.core.dataModel.core.JobRole,452                    hasKey: "id",453                    hasMany: "jobRoleToTeams",454                    ofType: LG.core.dataModel.core.JobRoleToTeam,455                    withKey: "id",456                    withForeignKey: "jobRoleId",457                    withOne: "jobRole"458                }, {459                    type: LG.core.dataModel.core.CompanyDivision,460                    hasKey: "id",461                    hasMany: "jobRoleToDivisions",462                    ofType: LG.core.dataModel.core.JobRoleToDivision,463                    withKey: "id",464                    withForeignKey: "companyDivisionId",465                    withOne: "companyDivision"466                }, {467                    type: LG.core.dataModel.core.CompanyDepartment,468                    hasKey: "id",469                    hasMany: "jobRoleToDepartments",470                    ofType: LG.core.dataModel.core.JobRoleToDepartment,471                    withKey: "id",472                    withForeignKey: "companyDepartmentId",473                    withOne: "companyDepartment"474                }, {475                    type: LG.core.dataModel.core.CompanyTeam,476                    hasKey: "id",477                    hasMany: "jobRoleToTeams",478                    ofType: LG.core.dataModel.core.JobRoleToTeam,479                    withKey: "id",480                    withForeignKey: "companyTeamId",481                    withOne: "companyTeam"482                }],483                manyToMany: [{484                    type: LG.core.dataModel.core.PermissionGroup,485                    hasKey: "id",486                    hasForeignKey: "permissionId",487                    hasMany: "permissions",488                    ofType: LG.core.dataModel.core.Permission,489                    withKey: "id",490                    withForeignKey: "permissionGroupId",491                    withMany: "permissionGroups",492                    usingMappingType: LG.core.dataModel.core.PermissionGroupToPermission493                }, {494                    type: LG.core.dataModel.core.Person,495                    hasKey: "id",496                    hasForeignKey: "peopleGroupId",497                    hasMany: "peopleGroups",498                    ofType: LG.core.dataModel.core.PeopleGroup,499                    withKey: "id",500                    withForeignKey: "personId",501                    withMany: "people",502                    usingMappingType: LG.core.dataModel.core.PersonToPeopleGroup503                }, {504                    type: LG.core.dataModel.core.Person,505                    hasKey: "id",506                    hasForeignKey: "permissionId",507                    hasMany: "permissions",508                    ofType: LG.core.dataModel.core.Permission,509                    withKey: "id",510                    withForeignKey: "personId",511                    withMany: "people",512                    usingMappingType: LG.core.dataModel.core.PersonToPermission513                }, {514                    type: LG.core.dataModel.core.Person,515                    hasKey: "id",516                    hasForeignKey: "permissionGroupId",517                    hasMany: "permissionGroups",518                    ofType: LG.core.dataModel.core.PermissionGroup,519                    withKey: "id",520                    withForeignKey: "personId",521                    withMany: "people",522                    usingMappingType: LG.core.dataModel.core.PersonToPermissionGroup523                }, {524                    type: LG.core.dataModel.core.PeopleGroup,525                    hasKey: "id",526                    hasForeignKey: "permissionGroupId",527                    hasMany: "permissionGroups",528                    ofType: LG.core.dataModel.core.PermissionGroup,529                    withKey: "id",530                    withForeignKey: "peopleGroupId",531                    withMany: "peopleGroups",532                    usingMappingType: LG.core.dataModel.core.PermissionGroupToPeopleGroup533                }, {534                    type: LG.core.dataModel.core.PeopleGroup,535                    hasKey: "id",536                    hasForeignKey: "permissionId",537                    hasMany: "permissions",538                    ofType: LG.core.dataModel.core.Permission,539                    withKey: "id",540                    withForeignKey: "peopleGroupId",541                    withMany: "peopleGroups",542                    usingMappingType: LG.core.dataModel.core.PeopleGroupToPermission543                }]544            };545            return self;546        };547        BASE.extend(Service, Super);548        return Service;549    }(LG.rest.Service));...DataContext.js
Source:DataContext.js  
1BASE.require([2    "BASE.data.DataContext",3    "LG.core.dataModel.core.AgencyRole",4    "LG.core.dataModel.core.CompanyRole",5    "LG.core.dataModel.core.App",6    "LG.core.dataModel.core.Authentication",7    "LG.core.dataModel.core.AuthenticationFactor",8    "LG.core.dataModel.core.Company",9    "LG.core.dataModel.core.CompanyAddress",10    "LG.core.dataModel.core.CompanyAddressPhoneNumber",11    "LG.core.dataModel.core.CompanyEmailAddress",12    "LG.core.dataModel.core.CompanyName",13    "LG.core.dataModel.core.CompanyPhoneNumber",14    "LG.core.dataModel.core.CompanyUltiProAccount",15    "LG.core.dataModel.core.DatabaseCredential",16    "LG.core.dataModel.core.GoogleAuthFactor",17    "LG.core.dataModel.core.PeopleGroup",18    "LG.core.dataModel.core.LdapCredential",19    "LG.core.dataModel.core.Permission",20    "LG.core.dataModel.core.PermissionGroup",21    "LG.core.dataModel.core.Person",22    "LG.core.dataModel.core.PersonEmailAddress",23    "LG.core.dataModel.core.PersonLdapAccount",24    "LG.core.dataModel.core.PersonPhoneNumber",25    "LG.core.dataModel.core.PersonUltiProAccount",26    "LG.core.dataModel.core.ProfilePictureAttachment",27    "LG.core.dataModel.core.Service",28    "LG.core.dataModel.core.PermissionGroupToPermission",29    "LG.core.dataModel.core.PersonToPeopleGroup",30    "LG.core.dataModel.core.PersonToPermission",31    "LG.core.dataModel.core.PersonToPermissionGroup",32    "LG.core.dataModel.core.PermissionGroupToPeopleGroup",33    "LG.core.dataModel.core.PeopleGroupToPermission",34    "LG.core.dataModel.core.AppCategory",35    "LG.core.dataModel.core.LGEmployeeRole",36    "LG.core.dataModel.core.FullTimeEquivalent",37    "LG.core.dataModel.core.JobRole",38    "LG.core.dataModel.core.JobRoleToDepartment",39    "LG.core.dataModel.core.JobRoleToDivision",40    "LG.core.dataModel.core.JobRoleToTeam",41    "LG.core.dataModel.core.JobRoleType",42    "LG.core.dataModel.core.LGEmployeeRoleTitle",43    "LG.core.dataModel.core.PercentOfFullTimeEquivalent",44    "LG.core.dataModel.core.SupervisorJobRole",45    "LG.core.dataModel.core.CompanyDivision",46    "LG.core.dataModel.core.CompanyTeam",47    "LG.core.dataModel.core.CompanyDepartment",48    "LG.core.dataModel.core.LGEmployeeRoleUltiProAccount"49], function () {50    BASE.namespace("LG.core.dataModel.core");51    LG.core.dataModel.core.DataContext = (function (Super) {52        var DataContext = function (appId, userToken) {53            var self = this;54            if (!(self instanceof arguments.callee)) {55                return new DataContext(appId, userToken);56            }57            Super.call(self);58            self.setService(new LG.core.dataModel.core.Service(appId, userToken, self.relationships));59            self.agencyRoles = new BASE.data.DataSet(LG.core.dataModel.core.AgencyRole, self);60            self.companyRoles = new BASE.data.DataSet(LG.core.dataModel.core.CompanyRole, self);61            self.apps = new BASE.data.DataSet(LG.core.dataModel.core.App, self);62            self.appCategories = new BASE.data.DataSet(LG.core.dataModel.core.AppCategory, self);63            self.authentications = new BASE.data.DataSet(LG.core.dataModel.core.Authentication, self);64            self.authenticationFactors = new BASE.data.DataSet(LG.core.dataModel.core.AuthenticationFactor, self);65            self.companies = new BASE.data.DataSet(LG.core.dataModel.core.Company, self);66            self.companyAddresses = new BASE.data.DataSet(LG.core.dataModel.core.CompanyAddress, self);67            self.companyAddressPhoneNumbers = new BASE.data.DataSet(LG.core.dataModel.core.CompanyAddressPhoneNumber, self);68            self.companyEmailAddresses = new BASE.data.DataSet(LG.core.dataModel.core.CompanyEmailAddress, self);69            self.companyNames = new BASE.data.DataSet(LG.core.dataModel.core.CompanyName, self);70            self.companyPhoneNumbers = new BASE.data.DataSet(LG.core.dataModel.core.CompanyPhoneNumber, self);71            self.companyUltiProAccounts = new BASE.data.DataSet(LG.core.dataModel.core.CompanyUltiProAccount, self);72            self.databaseCredentials = new BASE.data.DataSet(LG.core.dataModel.core.DatabaseCredential, self);73            self.LGEmployeeRoles = new BASE.data.DataSet(LG.core.dataModel.core.LGEmployeeRole, self);74            self.googleAuthFactors = new BASE.data.DataSet(LG.core.dataModel.core.GoogleAuthFactor, self);75            self.peopleGroups = new BASE.data.DataSet(LG.core.dataModel.core.PeopleGroup, self);76            self.ldapCredentials = new BASE.data.DataSet(LG.core.dataModel.core.LdapCredential, self);77            self.permissions = new BASE.data.DataSet(LG.core.dataModel.core.Permission, self);78            self.permissionGroups = new BASE.data.DataSet(LG.core.dataModel.core.PermissionGroup, self);79            self.people = new BASE.data.DataSet(LG.core.dataModel.core.Person, self);80            self.personEmailAddresses = new BASE.data.DataSet(LG.core.dataModel.core.PersonEmailAddress, self);81            self.personLdapAccounts = new BASE.data.DataSet(LG.core.dataModel.core.PersonLdapAccount, self);82            self.personPhoneNumbers = new BASE.data.DataSet(LG.core.dataModel.core.PersonPhoneNumber, self);83            self.personUltiProAccounts = new BASE.data.DataSet(LG.core.dataModel.core.PersonUltiProAccount, self);84            self.profilePictureAttachments = new BASE.data.DataSet(LG.core.dataModel.core.ProfilePictureAttachment, self);85            self.jobRoles = new BASE.data.DataSet(LG.core.dataModel.core.JobRole, self);86            self.jobRoleToDepartments = new BASE.data.DataSet(LG.core.dataModel.core.JobRoleToDepartment, self);87            self.jobRoleToDivisions = new BASE.data.DataSet(LG.core.dataModel.core.JobRoleToDivision, self);88            self.jobRoleToTeams = new BASE.data.DataSet(LG.core.dataModel.core.JobRoleToTeam, self);89            self.jobRoleTypes = new BASE.data.DataSet(LG.core.dataModel.core.JobRoleType, self);90            self.jobRoleDataPoints = new BASE.data.DataSet(LG.core.dataModel.core.JobRoleDataPoint, self);91            self.producerRoleDataPoints = new BASE.data.DataSet(LG.core.dataModel.core.ProducerRoleDataPoint, self);92            self.LGEmployeeRoleTitles = new BASE.data.DataSet(LG.core.dataModel.core.LGEmployeeRoleTitle, self);93            self.percentOfFullTimeEquivalents = new BASE.data.DataSet(LG.core.dataModel.core.PercentOfFullTimeEquivalent, self);94            self.supervisorJobRoles = new BASE.data.DataSet(LG.core.dataModel.core.SupervisorJobRole, self);95            self.companyDivisions = new BASE.data.DataSet(LG.core.dataModel.core.CompanyDivision, self);96            self.companyTeams = new BASE.data.DataSet(LG.core.dataModel.core.CompanyTeam, self);97            self.companyDepartments = new BASE.data.DataSet(LG.core.dataModel.core.CompanyDepartment, self);98            self.fullTimeEquivalents = new BASE.data.DataSet(LG.core.dataModel.core.FullTimeEquivalent, self);99            100            return self;101        };102        BASE.extend(DataContext, Super);103        return DataContext;104    }(BASE.data.DataContext));...Using AI Code Generation
1const { Playwright } = require('playwright');2  {3    isEnabled(name, severity) {4      return true;5    },6    log(name, severity, message, args) {7      console.log(message);8    }9  }10];11const { chromium } = require('playwright');12(async () => {13  const browser = await chromium.launch({14  });15  const page = await browser.newPage();16  await page.screenshot({ path: 'google.png' });17  await browser.close();18})();19const { Playwright } = require('playwright');20  {21    isEnabled(name, severity) {22      return true;23    },24    log(name, severity, message, args) {25      console.log(message);26    }27  }28];29const { chromium } = require('playwright');30(async () => {31  const browser = await chromium.launch({32  });33  const context = await browser.newContext();34  const page = await context.newPage();35  await page.screenshot({ path: 'google.png' });36  await context.close();37  await browser.close();38})();39const { Playwright } = require('playwright');40  {41    isEnabled(name, severity) {42      return true;43    },44    log(name, severity, message, args) {45      console.log(message);46    }47  }48];49const { chromium } = require('playwright');50(async () => {51  const browser = await chromium.launch({52  });53  const context = await browser.newContext();54  const page = await context.newPage();Using AI Code Generation
1const { InternalLogger } = require('playwright/lib/utils/logger');2InternalLogger.prototype.lg = function() {3  console.log(...arguments);4};5const { InternalLogger } = require('playwright/lib/utils/logger');6InternalLogger.prototype.lg = function() {7  console.log(...arguments);8};9const { chromium } = require('playwright');10(async () => {11  const browser = await chromium.launch();12  const context = await browser.newContext();13  const page = await context.newPage();14  await page.screenshot({ path: `example.png` });15  await browser.close();16})();Using AI Code Generation
1const { lg } = require("@playwright/test");2lg("Hello World");3const { test } = require("@playwright/test");4test("My first test", async ({ page }) => {5  await page.screenshot({ path: "example.png" });6});7const { test } = require("@playwright/test");8test("My first test", async ({ page }) => {9  await page.screenshot({ path: "example.png" });10});11const { test } = require("@playwright/test");12test("My first test", async ({ page }) => {13  await page.screenshot({ path: "example.png" });14});15const { test } = require("@playwright/test");16test("My first test", async ({ page }) => {17  await page.screenshot({ path: "example.png" });18});19const { test } = require("@playwright/test");20test("My first test", async ({ page }) => {21  await page.screenshot({ path: "example.png" });22});23const { test } = require("@playwright/test");24test("My first test", async ({ page }) => {25  await page.screenshot({ path: "example.png" });26});27const { test } = require("@playwright/test");28test("My first test", async ({ page }) => {29  await page.screenshot({ path: "example.png" });30});31const { test } = require("@playwright/test");32test("My first test", async ({ page }) => {33  await page.screenshot({ path: "example.png" });34});35const { test } = require("@playwright/test");36test("My first test", async ({ page }) => {Using AI Code Generation
1const { log } = require('@playwright/test/lib/utils/logger');2log('info', 'This is my custom log');3const { log } = require('@playwright/test/lib/utils/logger');4log('info', 'This is my custom log');5const { log } = require('@playwright/test/lib/utils/logger');6log('info', 'This is my custom log');7const { log } = require('@playwright/test/lib/utils/logger');8log('info', 'This is my custom log');9const { log } = require('@playwright/test/lib/utils/logger');10log('info', 'This is my custom log');11const { log } = require('@playwright/test/lib/utils/logger');12log('info', 'This is my custom log');13const { log } = require('@playwright/test/lib/utils/logger');14log('info', 'This is my custom log');15const { log } = require('@playwright/test/lib/utils/logger');16log('info', 'This is my custom log');17const { log } = require('@playwright/test/lib/utils/logger');18log('info', 'This is my custom log');19const { log } = require('@playwright/test/lib/utils/logger');20log('info', 'This is my custom log');21const { log } = require('@playwright/test/lib/utils/logger');22log('info', 'This is my custom log');23const { log } = require('@playwright/test/lib/utils/logger');24log('info', 'This is my custom log');25const { log } = require('@playwright/test/lib/utils/logger');26log('info', 'This is my custom log');27const { log } = require('@playwright/test/lib/utils/logger');28log('Using AI Code Generation
1const { Playwright } = require('playwright');2const { log } = Playwright;3log('log message');4log('log message', 'with', 'multiple', 'parameters');5log('log message with some %s', 'parameters');6log('log message with some %s', 'parameters', 'and', 'some', 'more');7log('log message with some %s and some %d', 'parameters', 123);8log('log message with some %s and some %d', 'parameters', 123, 'and', 'some', 'more');9log('log message with some %s and some %d and some %j', 'parameters', 123, { foo: 'bar' });10log('log message with some %s and some %d and some %j', 'parameters', 123, { foo: 'bar' }, 'and', 'some', 'more');11log('log message with some %s and some %d and some %j and some %o', 'parameters', 123, { foo: 'bar' }, { bar: 'baz' });12log('log message with some %s and some %d and some %j and some %o', 'parameters', 123, { foo: 'bar' }, { bar: 'baz' }, 'and', 'some', 'more');13const { Playwright } = require('playwright');14const { log } = Playwright;15log('log message with some %s and some %d and some %j and some %o', 'parameters', 123, { foo: 'bar' }, { bar: 'baz' }, 'and', 'some', 'more');16log('log message with some %s and some %d and some %j and some %o', 'parameters', 123, { foo: 'bar' }, { bar: 'baz' }, 'and', 'some', 'more');17const { Playwright } = require('playwright');18const { log } = Playwright;19log('log message with some %s and some %d and some %j and some %o', 'parameters', 123, { foo: 'bar' }, { bar: 'baz' }, 'and', 'some', 'more');Using AI Code Generation
1const { PlaywrightInternalLogger } = require("@playwright/test");2const logger = new PlaywrightInternalLogger();3logger.lg("Hello World");4const { test } = require("@playwright/test");5test("my test", async ({ page }) => {6});7const { test, expect } = require("@playwright/test");8test("my test", async ({ page }) => {9});10const { test } = require("@playwright/test");11test("my test", async ({ page }, testInfo) => {12  await page.goto(testInfo.parameters.url);13});14const { test } = require("@playwright/test");15test("my test", async ({ page }) => {16});17test("my test", async ({ page }) => {18}, { timeout: 30000 });19const {Using AI Code Generation
1const { log } = require('@playwright/test');2const fs = require('fs');3log.log = async function (message, severity) {4    const file = fs.createWriteStream('log.txt', { flags: 'a' });5    file.write(message + '\n');6    file.end();7};8test('test', async ({ page }) => {9    await page.screenshot({ path: `example.png` });10});11Hey @sahilgoyal, thanks for reporting! This should be fixed in the latest version of Playwright Test (1.8.1). Please let us know if it works for you!Using AI Code Generation
1const {lg} = require('playwright/lib/utils/logger');2lg('Hello World');3import { PlaywrightTestConfig } from '@playwright/test';4import { PlaywrightTestLogger } from 'playwright-test-logger';5const config: PlaywrightTestConfig = {6  use: {7    ...PlaywrightTestLogger(),8  },9};10export default config;11import { test } from '@playwright/test';12test('My Test', async ({ page, log }) => {13  log('Hello World');14});15PlaywrightTestLogger(): PlaywrightTestConfig['use'];16PlaywrightTestLogger(options: PlaywrightTestLoggerOptions): PlaywrightTestConfig['use'];LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
