From 9674d300433feb9ed6ff30e30037fac53b2f1c32 Mon Sep 17 00:00:00 2001 From: racfop Date: Wed, 8 Feb 2023 09:15:20 -0800 Subject: [PATCH 1/5] rebase --- CHANGELOG.md | 106 +- CONTRIBUTING.md | 4 +- README.md | 60 +- RELEASE.md | 2 +- build/README.md | 10 +- docs/Gemfile | 2 + docs/Gemfile.lock | 32 +- docs/architecture.md | 73 +- docs/assets/js/bootstrap.min.js | 1956 ++++- docs/assets/js/contact.js | 49 +- docs/assets/js/custom.js | 296 +- docs/assets/js/jquery-2.1.1.js | 3931 +++++++++- docs/assets/js/jquery.accordion.js | 476 +- docs/assets/js/jquery.validate.min.js | 825 +- docs/assets/js/live.js | 469 +- docs/assets/js/menu-2.js | 79 +- docs/assets/js/menu.js | 83 +- docs/assets/js/plugins.js | 6633 ++++++++++++++--- docs/assets/js/popper.min.js | 845 ++- docs/assets/js/validator.js | 735 +- docs/conversion.md | 42 +- docs/development.md | 14 +- docs/getting-started.md | 117 +- docs/index.md | 1 + docs/installation.md | 23 +- docs/integrations.md | 38 +- docs/maven-example.md | 37 +- docs/user-guide.md | 180 +- go.mod | 2 +- index.md | 5 +- script/test/README.md | 3 - .../fixtures/nginx-node-redis/node/index.js | 23 +- .../nginx-node-redis/node/test/dummyTest.js | 14 +- .../unused/v3/output-os-full-example.json | 2 +- 34 files changed, 14721 insertions(+), 2446 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab0ad74513..1122b0fdcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,14 +51,14 @@ - Missing exe extension for windows release [\#1433](https://github.com/kubernetes/kompose/issues/1433) - is version of golangci-lint consistent with it github-ci [\#1422](https://github.com/kubernetes/kompose/issues/1422) - compatability issue with 64-bit version of windows [\#1415](https://github.com/kubernetes/kompose/issues/1415) -- Kompose generated network YAML cannot be applied because there are o matches for kind "NetworkPolicy" in version "extensions/v1beta1" [\#1408](https://github.com/kubernetes/kompose/issues/1408) +- Kompose generated network YAML cannot be applied because there are o matches for kind "NetworkPolicy" in version "extensions/v1beta1" [\#1408](https://github.com/kubernetes/kompose/issues/1408) - docker-compose 3.8 [\#1396](https://github.com/kubernetes/kompose/issues/1396) - 'Support for readinessProbe' is not include Kompose 1.22.0 [\#1384](https://github.com/kubernetes/kompose/issues/1384) - Is it possible to push image to custom container registry? [\#1369](https://github.com/kubernetes/kompose/issues/1369) - Windows Binaries for 1.22 not updated correctly [\#1347](https://github.com/kubernetes/kompose/issues/1347) -- Provide sha256 checksums as Assets instead of strings in a HTML table [\#1311](https://github.com/kubernetes/kompose/issues/1311) +- Provide sha256 checksums as Assets instead of strings in a HTML table [\#1311](https://github.com/kubernetes/kompose/issues/1311) - \[BUG\] Kompose doesn't read config from URL [\#1291](https://github.com/kubernetes/kompose/issues/1291) -- kompose convert Volume mount on the host isn't supported [\#1271](https://github.com/kubernetes/kompose/issues/1271) +- kompose convert Volume mount on the host isn't supported [\#1271](https://github.com/kubernetes/kompose/issues/1271) - Dotfile path \(e.g ./envs/./production/.envs\) errors/is not supported in Kompose [\#1240](https://github.com/kubernetes/kompose/issues/1240) - Create route for openshift - targert port should be a string [\#1184](https://github.com/kubernetes/kompose/issues/1184) - Support yaml anchors [\#1155](https://github.com/kubernetes/kompose/issues/1155) @@ -135,7 +135,7 @@ - add autocompletion for fish shell [\#1412](https://github.com/kubernetes/kompose/pull/1412) ([top](https://github.com/top)) - Fix build context [\#1411](https://github.com/kubernetes/kompose/pull/1411) ([lexcao](https://github.com/lexcao)) - Support custom registry on pushing image [\#1409](https://github.com/kubernetes/kompose/pull/1409) ([lexcao](https://github.com/lexcao)) -- Add "--pvc-request-size" new command line parameter [\#1406](https://github.com/kubernetes/kompose/pull/1406) ([ithaiq](https://github.com/ithaiq)) +- Add "--pvc-request-size" new command line parameter [\#1406](https://github.com/kubernetes/kompose/pull/1406) ([ithaiq](https://github.com/ithaiq)) - fix: --build flag default change to local [\#1405](https://github.com/kubernetes/kompose/pull/1405) ([zeromake](https://github.com/zeromake)) - Fix the selector field of service resource [\#1404](https://github.com/kubernetes/kompose/pull/1404) ([cnbailian](https://github.com/cnbailian)) - chore: update error for wrong volume type [\#1402](https://github.com/kubernetes/kompose/pull/1402) ([Yiyiyimu](https://github.com/Yiyiyimu)) @@ -172,7 +172,7 @@ - Ports are parsed incorrectly from "expose" [\#1321](https://github.com/kubernetes/kompose/issues/1321) - Build args not working [\#1319](https://github.com/kubernetes/kompose/issues/1319) - Need to update the api version in the auto-generated network policy [\#1318](https://github.com/kubernetes/kompose/issues/1318) -- Possibility to use default ingress ssl cert [\#1316](https://github.com/kubernetes/kompose/issues/1316) +- Possibility to use default ingress ssl cert [\#1316](https://github.com/kubernetes/kompose/issues/1316) - TLS host invalid when using kompose.service.expose with path [\#1315](https://github.com/kubernetes/kompose/issues/1315) - problems converting docker-compose file using local environment variables [\#1314](https://github.com/kubernetes/kompose/issues/1314) - FATA enviroment Additional property enviroment is not allowed [\#1310](https://github.com/kubernetes/kompose/issues/1310) @@ -192,7 +192,7 @@ - Losing quotes when converting "yes" and "no" [\#1253](https://github.com/kubernetes/kompose/issues/1253) - Error while deploying application: the server could not find the requested resource [\#1238](https://github.com/kubernetes/kompose/issues/1238) - no matches for kind "Deployment" in version "extensions/v1beta1" [\#1236](https://github.com/kubernetes/kompose/issues/1236) -- convert the 2.1 version docker-compose.yaml error!!!!! [\#1235](https://github.com/kubernetes/kompose/issues/1235) +- convert the 2.1 version docker-compose.yaml error!!!!! [\#1235](https://github.com/kubernetes/kompose/issues/1235) - Kompose doesn't work with docker-compose v3.7 [\#1152](https://github.com/kubernetes/kompose/issues/1152) **Merged pull requests:** @@ -249,7 +249,7 @@ - Deprecating kompose up and kompose down in favor of only kompose convert [\#1275](https://github.com/kubernetes/kompose/issues/1275) - Running kompose under k3s failed [\#1270](https://github.com/kubernetes/kompose/issues/1270) - Getting user and password prompt while doing Kompose up [\#1269](https://github.com/kubernetes/kompose/issues/1269) -- kompose response '\[1\] 77127 killed kompose' and does nothing [\#1268](https://github.com/kubernetes/kompose/issues/1268) +- kompose response '\[1\] 77127 killed kompose' and does nothing [\#1268](https://github.com/kubernetes/kompose/issues/1268) - .env file creates -env entries, no ConfigMap [\#1267](https://github.com/kubernetes/kompose/issues/1267) - Kompose not creating pods & deployments on minikube [\#1264](https://github.com/kubernetes/kompose/issues/1264) - Unable to read env\_file: Can't separate key from value [\#1263](https://github.com/kubernetes/kompose/issues/1263) @@ -266,7 +266,7 @@ - \[BUG\] Repeated resources in YAML file when --out flag is supplied [\#1239](https://github.com/kubernetes/kompose/issues/1239) - \[Feature\]: Validation of supported attributes within a docker-compose file [\#1237](https://github.com/kubernetes/kompose/issues/1237) - How do I start a POD with my transformed files [\#1234](https://github.com/kubernetes/kompose/issues/1234) -- Error while deploying application: Get http://localhost:8080/api: dial tcp \[::1\]:8080: connect: connection refused [\#1201](https://github.com/kubernetes/kompose/issues/1201) +- Error while deploying application: Get http://localhost:8080/api: dial tcp \[::1\]:8080: connect: connection refused [\#1201](https://github.com/kubernetes/kompose/issues/1201) - Error when i'm trying to convert my docker-compose [\#1130](https://github.com/kubernetes/kompose/issues/1130) - Labels not converted to annotations in ingress [\#1071](https://github.com/kubernetes/kompose/issues/1071) - Init Containers [\#1053](https://github.com/kubernetes/kompose/issues/1053) @@ -374,7 +374,7 @@ **Closed issues:** - Int Test Case correction for Network Translation Feature [\#1196](https://github.com/kubernetes/kompose/issues/1196) -- Proposal: Achieve Docker-Compose Network functionality using NetworkPolicy in Kubernates [\#1188](https://github.com/kubernetes/kompose/issues/1188) +- Proposal: Achieve Docker-Compose Network functionality using NetworkPolicy in Kubernates [\#1188](https://github.com/kubernetes/kompose/issues/1188) - Follow docker compose conventions for merging top level keys [\#1185](https://github.com/kubernetes/kompose/issues/1185) - Convert Helm to Docker-compose [\#1183](https://github.com/kubernetes/kompose/issues/1183) - Latest binary still not statically linked [\#1182](https://github.com/kubernetes/kompose/issues/1182) @@ -422,7 +422,7 @@ - `container\_name` was not converted to a valid identifier [\#1135](https://github.com/kubernetes/kompose/issues/1135) - Upgrade Deployment and DaemonSet [\#1133](https://github.com/kubernetes/kompose/issues/1133) - Trivial converted service is not reachable [\#1128](https://github.com/kubernetes/kompose/issues/1128) -- repository 'https://src.fedoraproject.org/cgit/rpms/kompose.git/' not found [\#1126](https://github.com/kubernetes/kompose/issues/1126) +- repository 'https://src.fedoraproject.org/cgit/rpms/kompose.git/' not found [\#1126](https://github.com/kubernetes/kompose/issues/1126) - go get failed [\#1124](https://github.com/kubernetes/kompose/issues/1124) - Fix dep [\#1119](https://github.com/kubernetes/kompose/issues/1119) - "kompose up" won't push to Google on Windows Subsystem for Linux [\#1117](https://github.com/kubernetes/kompose/issues/1117) @@ -432,7 +432,7 @@ - Support for PVC Access Mode ReadWriteMany [\#1046](https://github.com/kubernetes/kompose/issues/1046) - Add official docker image build [\#1045](https://github.com/kubernetes/kompose/issues/1045) - Kubernetes specific support in Compose [\#917](https://github.com/kubernetes/kompose/issues/917) -- Unable to push Docker image for service web: Unable to retrieve .docker/config.json authentication details. [\#911](https://github.com/kubernetes/kompose/issues/911) +- Unable to push Docker image for service web: Unable to retrieve .docker/config.json authentication details. [\#911](https://github.com/kubernetes/kompose/issues/911) - Rework "unsupported keys" prompt [\#788](https://github.com/kubernetes/kompose/issues/788) **Merged pull requests:** @@ -543,7 +543,7 @@ **Closed issues:** -- 'environment' with 'env-file' specified together for service in docker-compose.yml don't work [\#1013](https://github.com/kubernetes/kompose/issues/1013) +- 'environment' with 'env-file' specified together for service in docker-compose.yml don't work [\#1013](https://github.com/kubernetes/kompose/issues/1013) - kompose does not indicate key nor line number when printing error [\#915](https://github.com/kubernetes/kompose/issues/915) - error with autogenerated cluster name [\#713](https://github.com/kubernetes/kompose/issues/713) - kompose build fails: unable to create tarball [\#656](https://github.com/kubernetes/kompose/issues/656) @@ -626,7 +626,7 @@ **Closed issues:** -- Should we provide a go library to support the third-party integration ? [\#982](https://github.com/kubernetes/kompose/issues/982) +- Should we provide a go library to support the third-party integration ? [\#982](https://github.com/kubernetes/kompose/issues/982) - Minor typos in Makefile [\#971](https://github.com/kubernetes/kompose/issues/971) - panic: runtime error: invalid memory address or nil pointer dereference [\#892](https://github.com/kubernetes/kompose/issues/892) - kompose should read input from stdin [\#870](https://github.com/kubernetes/kompose/issues/870) @@ -721,7 +721,7 @@ - "panic: runtime error: invalid memory address or nil pointer dereference" when using environment unset variables [\#918](https://github.com/kubernetes/kompose/issues/918) - \[doc\] more tutorial for gcloud? [\#833](https://github.com/kubernetes/kompose/issues/833) - Cannot locate specified Dockerfile: Dockerfile [\#809](https://github.com/kubernetes/kompose/issues/809) -- kompose passes a kubernetes deployment without image [\#571](https://github.com/kubernetes/kompose/issues/571) +- kompose passes a kubernetes deployment without image [\#571](https://github.com/kubernetes/kompose/issues/571) - Support for sysctls [\#441](https://github.com/kubernetes/kompose/issues/441) **Merged pull requests:** @@ -770,7 +770,7 @@ - kompose build fails to read the context correctly [\#832](https://github.com/kubernetes/kompose/issues/832) - Build errors with current OpenShift cluster tests [\#752](https://github.com/kubernetes/kompose/issues/752) - kompose should give warning on providing blank environment variables [\#545](https://github.com/kubernetes/kompose/issues/545) -- Docker build fails: Failed to push image: unauthized:authentication required [\#496](https://github.com/kubernetes/kompose/issues/496) +- Docker build fails: Failed to push image: unauthized:authentication required [\#496](https://github.com/kubernetes/kompose/issues/496) - wrong git revision number in version output [\#422](https://github.com/kubernetes/kompose/issues/422) - publicly hosted API endpoint for kompose [\#419](https://github.com/kubernetes/kompose/issues/419) - Improve logging messages in unit tests [\#351](https://github.com/kubernetes/kompose/issues/351) @@ -819,8 +819,8 @@ **Merged pull requests:** - 1.5.0 Release [\#874](https://github.com/kubernetes/kompose/pull/874) ([cdrage](https://github.com/cdrage)) -- Set PVC volume size with kompose.volume.size [\#867](https://github.com/kubernetes/kompose/pull/867) ([abitrolly](https://github.com/abitrolly)) -- architecture.md Link sources [\#866](https://github.com/kubernetes/kompose/pull/866) ([abitrolly](https://github.com/abitrolly)) +- Set PVC volume size with kompose.volume.size [\#867](https://github.com/kubernetes/kompose/pull/867) ([abitrolly](https://github.com/abitrolly)) +- architecture.md Link sources [\#866](https://github.com/kubernetes/kompose/pull/866) ([abitrolly](https://github.com/abitrolly)) - Move version information to separate file [\#864](https://github.com/kubernetes/kompose/pull/864) ([cdrage](https://github.com/cdrage)) - Fix typo [\#863](https://github.com/kubernetes/kompose/pull/863) ([xianlubird](https://github.com/xianlubird)) - Ignore links attribute and print warning message [\#862](https://github.com/kubernetes/kompose/pull/862) ([xianlubird](https://github.com/xianlubird)) @@ -856,7 +856,7 @@ **Closed issues:** - `go vet` is failing locally [\#825](https://github.com/kubernetes/kompose/issues/825) -- `--volumes` is not validated [\#814](https://github.com/kubernetes/kompose/issues/814) +- `--volumes` is not validated [\#814](https://github.com/kubernetes/kompose/issues/814) - tmpfs with mode fails [\#807](https://github.com/kubernetes/kompose/issues/807) - Add --controller [\#792](https://github.com/kubernetes/kompose/issues/792) @@ -872,7 +872,7 @@ - Updated vendoring [\#828](https://github.com/kubernetes/kompose/pull/828) ([surajnarwade](https://github.com/surajnarwade)) - Fixed `go vet` [\#827](https://github.com/kubernetes/kompose/pull/827) ([surajnarwade](https://github.com/surajnarwade)) - Added `--build-repo` in `kompose up` [\#824](https://github.com/kubernetes/kompose/pull/824) ([surajnarwade](https://github.com/surajnarwade)) -- Adding --build-branch to `kompose up` [\#820](https://github.com/kubernetes/kompose/pull/820) ([surajnarwade](https://github.com/surajnarwade)) +- Adding --build-branch to `kompose up` [\#820](https://github.com/kubernetes/kompose/pull/820) ([surajnarwade](https://github.com/surajnarwade)) - Fixed `--volumes` validation [\#817](https://github.com/kubernetes/kompose/pull/817) ([surajnarwade](https://github.com/surajnarwade)) - Fixed tmpfs with mode failure [\#816](https://github.com/kubernetes/kompose/pull/816) ([surajnarwade](https://github.com/surajnarwade)) - Fix reference to emptyDir in OpenShift test scripts [\#815](https://github.com/kubernetes/kompose/pull/815) ([ashetty1](https://github.com/ashetty1)) @@ -905,8 +905,8 @@ - Add support for cpus \(Version 3 Resources Key\) [\#730](https://github.com/kubernetes/kompose/issues/730) - Deprecate Docker Compose Version 2.1, 2.2, and 3.3. Only support 1,2,3,4 \(future\). [\#725](https://github.com/kubernetes/kompose/issues/725) - Error running kompose on counter v3 example file [\#721](https://github.com/kubernetes/kompose/issues/721) -- Change imports for kompose packages to 'k8s.io/kompose" [\#719](https://github.com/kubernetes/kompose/issues/719) -- Distinguish / re-add ` $` to docs [\#718](https://github.com/kubernetes/kompose/issues/718) +- Change imports for kompose packages to 'k8s.io/kompose" [\#719](https://github.com/kubernetes/kompose/issues/719) +- Distinguish / re-add `$` to docs [\#718](https://github.com/kubernetes/kompose/issues/718) - Docker build in kompose convert [\#691](https://github.com/kubernetes/kompose/issues/691) - Move git functions in openshift.go into a separate package [\#640](https://github.com/kubernetes/kompose/issues/640) - Save the cmd used to create config [\#639](https://github.com/kubernetes/kompose/issues/639) @@ -918,7 +918,7 @@ - Support for: group\_add [\#437](https://github.com/kubernetes/kompose/issues/437) - kompose binary per merge? \(add nightlies\) [\#355](https://github.com/kubernetes/kompose/issues/355) - Add health checks [\#163](https://github.com/kubernetes/kompose/issues/163) -- Release process [\#70](https://github.com/kubernetes/kompose/issues/70) +- Release process [\#70](https://github.com/kubernetes/kompose/issues/70) **Merged pull requests:** @@ -957,7 +957,7 @@ - Add author to Kompose UI [\#742](https://github.com/kubernetes/kompose/pull/742) ([JadCham](https://github.com/JadCham)) - Update installation instructions [\#741](https://github.com/kubernetes/kompose/pull/741) ([cdrage](https://github.com/cdrage)) - Update integrations links [\#740](https://github.com/kubernetes/kompose/pull/740) ([cdrage](https://github.com/cdrage)) -- Added support for `group\_add` key [\#739](https://github.com/kubernetes/kompose/pull/739) ([surajnarwade](https://github.com/surajnarwade)) +- Added support for `group\_add` key [\#739](https://github.com/kubernetes/kompose/pull/739) ([surajnarwade](https://github.com/surajnarwade)) - Add CPU limit, CPU Reservation and Memory Reservation [\#738](https://github.com/kubernetes/kompose/pull/738) ([cdrage](https://github.com/cdrage)) - Add integration doc [\#736](https://github.com/kubernetes/kompose/pull/736) ([cdrage](https://github.com/cdrage)) - Add Windows instructions to installation.md [\#735](https://github.com/kubernetes/kompose/pull/735) ([cdrage](https://github.com/cdrage)) @@ -978,7 +978,7 @@ **Closed issues:** - adding timestamp in k8s artifacts [\#717](https://github.com/kubernetes/kompose/issues/717) -- Kompose latest release version info from version file [\#712](https://github.com/kubernetes/kompose/issues/712) +- Kompose latest release version info from version file [\#712](https://github.com/kubernetes/kompose/issues/712) - One Script to Run Them All [\#683](https://github.com/kubernetes/kompose/issues/683) - setting environment variable PROVIDER no longer works [\#678](https://github.com/kubernetes/kompose/issues/678) - kompose.service.type issues [\#673](https://github.com/kubernetes/kompose/issues/673) @@ -989,7 +989,7 @@ - v3 env substitution is not working [\#650](https://github.com/kubernetes/kompose/issues/650) - Docker Build/Push documentation [\#647](https://github.com/kubernetes/kompose/issues/647) - v3 Documentation [\#646](https://github.com/kubernetes/kompose/issues/646) -- Support restart\_policy in v3 docker compose [\#643](https://github.com/kubernetes/kompose/issues/643) +- Support restart\_policy in v3 docker compose [\#643](https://github.com/kubernetes/kompose/issues/643) - ports error on converting [\#633](https://github.com/kubernetes/kompose/issues/633) - Fix EnvSort so that env variables are populated properly [\#627](https://github.com/kubernetes/kompose/issues/627) - emptyvols option doesn't work for kompose convert/up [\#625](https://github.com/kubernetes/kompose/issues/625) @@ -997,7 +997,7 @@ - Add support for 'pid' key [\#610](https://github.com/kubernetes/kompose/issues/610) - Failing test should show diff [\#604](https://github.com/kubernetes/kompose/issues/604) - environment variables are populated in random order in the created artifacts. [\#595](https://github.com/kubernetes/kompose/issues/595) -- `kompose convert` should validate dockerfilepath [\#594](https://github.com/kubernetes/kompose/issues/594) +- `kompose convert` should validate dockerfilepath [\#594](https://github.com/kubernetes/kompose/issues/594) - Error with volume name with generated deployment file [\#584](https://github.com/kubernetes/kompose/issues/584) - kompose.service.type label not working as expected [\#522](https://github.com/kubernetes/kompose/issues/522) - Roadmap is out of date. [\#482](https://github.com/kubernetes/kompose/issues/482) @@ -1083,7 +1083,7 @@ **Closed issues:** - image tag name absent from generated imagestream config [\#611](https://github.com/kubernetes/kompose/issues/611) -- Volume mount on the host isn't supported [\#599](https://github.com/kubernetes/kompose/issues/599) +- Volume mount on the host isn't supported [\#599](https://github.com/kubernetes/kompose/issues/599) - Is this a case of buildconfig contextDir being incorrectly set? [\#593](https://github.com/kubernetes/kompose/issues/593) - Problems running tests with latest master? [\#591](https://github.com/kubernetes/kompose/issues/591) - crashes on launch [\#589](https://github.com/kubernetes/kompose/issues/589) @@ -1096,7 +1096,7 @@ - Inconsistency in build context [\#445](https://github.com/kubernetes/kompose/issues/445) - Support for: stop\_grace\_period [\#440](https://github.com/kubernetes/kompose/issues/440) - environment variables not being set in buildConfig [\#406](https://github.com/kubernetes/kompose/issues/406) -- kompose down with openshift doesn't delete BuildConfig [\#382](https://github.com/kubernetes/kompose/issues/382) +- kompose down with openshift doesn't delete BuildConfig [\#382](https://github.com/kubernetes/kompose/issues/382) **Merged pull requests:** @@ -1125,7 +1125,7 @@ **Closed issues:** - Support for cap\_add,cap\_drop [\#575](https://github.com/kubernetes/kompose/issues/575) -- commenting test case temporarily [\#564](https://github.com/kubernetes/kompose/issues/564) +- commenting test case temporarily [\#564](https://github.com/kubernetes/kompose/issues/564) - driver:local in prefixing volumes with current dir name [\#550](https://github.com/kubernetes/kompose/issues/550) - update docs/conversion.md [\#548](https://github.com/kubernetes/kompose/issues/548) - Kompose binary for ARM [\#541](https://github.com/kubernetes/kompose/issues/541) @@ -1198,7 +1198,7 @@ - Make kompose keep trying its job [\#270](https://github.com/kubernetes/kompose/issues/270) - Improving `down` to handle Volumes [\#255](https://github.com/kubernetes/kompose/issues/255) - Add tests based on current issues [\#205](https://github.com/kubernetes/kompose/issues/205) -- We should have a table / document for docker-compose to k8s / openshift conversion [\#82](https://github.com/kubernetes/kompose/issues/82) +- We should have a table / document for docker-compose to k8s / openshift conversion [\#82](https://github.com/kubernetes/kompose/issues/82) **Merged pull requests:** @@ -1281,12 +1281,12 @@ - By default, remove protocol: TCP in conversion to artifacts [\#392](https://github.com/kubernetes/kompose/issues/392) - Container Port and Node Port mapping default to open [\#391](https://github.com/kubernetes/kompose/issues/391) - panic on using --build-branch and default docker-compose file given [\#369](https://github.com/kubernetes/kompose/issues/369) -- error should be displayed If controller object is specified and `restart: on-failure` [\#354](https://github.com/kubernetes/kompose/issues/354) +- error should be displayed If controller object is specified and `restart: on-failure` [\#354](https://github.com/kubernetes/kompose/issues/354) - add support for docker-compose.yaml besides docker-compose.yml [\#352](https://github.com/kubernetes/kompose/issues/352) - Abstract out api.PodSpec in kubernetes.go [\#348](https://github.com/kubernetes/kompose/issues/348) - Support for host:container:protocol [\#335](https://github.com/kubernetes/kompose/issues/335) - Detecting exposed ports in images [\#146](https://github.com/kubernetes/kompose/issues/146) -- bash completion for kompose [\#37](https://github.com/kubernetes/kompose/issues/37) +- bash completion for kompose [\#37](https://github.com/kubernetes/kompose/issues/37) **Merged pull requests:** @@ -1328,7 +1328,7 @@ - Removing unconventional two letter flags + adding dashes in-between two letter words. [\#331](https://github.com/kubernetes/kompose/issues/331) - Determine group membership [\#327](https://github.com/kubernetes/kompose/issues/327) - kompose errors identifying string in docker-compose [\#320](https://github.com/kubernetes/kompose/issues/320) -- restart: Unsupported value: "OnFailure": supported values: Always [\#318](https://github.com/kubernetes/kompose/issues/318) +- restart: Unsupported value: "OnFailure": supported values: Always [\#318](https://github.com/kubernetes/kompose/issues/318) - Update roadmap / split into ROADMAP.md with relevant information [\#315](https://github.com/kubernetes/kompose/issues/315) - Replace godep with glide [\#314](https://github.com/kubernetes/kompose/issues/314) - Unable to run cmd tests under Debian. [\#309](https://github.com/kubernetes/kompose/issues/309) @@ -1345,7 +1345,7 @@ - Support multiple compose files [\#275](https://github.com/kubernetes/kompose/issues/275) - specifying service type right now is very docker-compose specific [\#273](https://github.com/kubernetes/kompose/issues/273) - Tiny issue on kompose up --emptyvols displaying [\#268](https://github.com/kubernetes/kompose/issues/268) -- Update README [\#265](https://github.com/kubernetes/kompose/issues/265) +- Update README [\#265](https://github.com/kubernetes/kompose/issues/265) - Change strategy for Deployments/DeployementConfigs [\#264](https://github.com/kubernetes/kompose/issues/264) - Issues regarding CLI. Perhaps switching to Cobra? [\#253](https://github.com/kubernetes/kompose/issues/253) - Track release goals with GitHub milestones [\#250](https://github.com/kubernetes/kompose/issues/250) @@ -1366,10 +1366,10 @@ - Add tests converting dab files [\#167](https://github.com/kubernetes/kompose/issues/167) - integration with minikube/minishift [\#156](https://github.com/kubernetes/kompose/issues/156) - compose2kube [\#151](https://github.com/kubernetes/kompose/issues/151) -- Creating Routes for Services [\#140](https://github.com/kubernetes/kompose/issues/140) +- Creating Routes for Services [\#140](https://github.com/kubernetes/kompose/issues/140) - Support BuildConfigs for openshift provider [\#96](https://github.com/kubernetes/kompose/issues/96) - Image name not given still kompose does not errors out [\#92](https://github.com/kubernetes/kompose/issues/92) -- Validate input args [\#87](https://github.com/kubernetes/kompose/issues/87) +- Validate input args [\#87](https://github.com/kubernetes/kompose/issues/87) - specify Deployment policy [\#17](https://github.com/kubernetes/kompose/issues/17) **Merged pull requests:** @@ -1392,7 +1392,7 @@ - Flag validation called on up and down [\#347](https://github.com/kubernetes/kompose/pull/347) ([surajssd](https://github.com/surajssd)) - updated dev docs with latest instructions [\#341](https://github.com/kubernetes/kompose/pull/341) ([surajssd](https://github.com/surajssd)) - update vendored dependencies [\#340](https://github.com/kubernetes/kompose/pull/340) ([surajssd](https://github.com/surajssd)) -- make YAML the default kompose conversion [\#339](https://github.com/kubernetes/kompose/pull/339) ([procrypt](https://github.com/procrypt)) +- make YAML the default kompose conversion [\#339](https://github.com/kubernetes/kompose/pull/339) ([procrypt](https://github.com/procrypt)) - \#231 Invoking kompose --bundle X.dab convert --stdout will produce tw… [\#338](https://github.com/kubernetes/kompose/pull/338) ([cab105](https://github.com/cab105)) - implement storing to directory or file, add functional tests [\#337](https://github.com/kubernetes/kompose/pull/337) ([concaf](https://github.com/concaf)) - support for raw pod output without controller [\#334](https://github.com/kubernetes/kompose/pull/334) ([surajssd](https://github.com/surajssd)) @@ -1427,7 +1427,7 @@ - Update main.go path [\#266](https://github.com/kubernetes/kompose/pull/266) ([procrypt](https://github.com/procrypt)) - Fix license headers, This closes \#223 [\#262](https://github.com/kubernetes/kompose/pull/262) ([sebgoa](https://github.com/sebgoa)) - Modify command in initializing unit tests [\#261](https://github.com/kubernetes/kompose/pull/261) ([cdrage](https://github.com/cdrage)) -- Add `go vet`, and `gofmt` tests. [\#259](https://github.com/kubernetes/kompose/pull/259) ([kadel](https://github.com/kadel)) +- Add `go vet`, and `gofmt` tests. [\#259](https://github.com/kubernetes/kompose/pull/259) ([kadel](https://github.com/kadel)) - CreatePVC: correct setting of read/only access [\#249](https://github.com/kubernetes/kompose/pull/249) ([dustymabe](https://github.com/dustymabe)) - Tests for CreateService and annotations [\#246](https://github.com/kubernetes/kompose/pull/246) ([cdrage](https://github.com/cdrage)) - Add support for user directive [\#245](https://github.com/kubernetes/kompose/pull/245) ([kadel](https://github.com/kadel)) @@ -1459,7 +1459,7 @@ - time-out errors while deleting deployments on openshift [\#165](https://github.com/kubernetes/kompose/issues/165) - RFE: choosing Service type [\#154](https://github.com/kubernetes/kompose/issues/154) - Ignoring network definitions [\#149](https://github.com/kubernetes/kompose/issues/149) -- Add warnings/error for image not specified [\#80](https://github.com/kubernetes/kompose/issues/80) +- Add warnings/error for image not specified [\#80](https://github.com/kubernetes/kompose/issues/80) - \[Discuss\] Find a good way to vendoring dependencies [\#43](https://github.com/kubernetes/kompose/issues/43) - new behavior of `kompose up` [\#40](https://github.com/kubernetes/kompose/issues/40) @@ -1502,13 +1502,13 @@ - come up with a release schedule [\#187](https://github.com/kubernetes/kompose/issues/187) - go 1.5 not building [\#181](https://github.com/kubernetes/kompose/issues/181) - `--provider` flag for kompose [\#179](https://github.com/kubernetes/kompose/issues/179) -- kompose --version - print out dev tag [\#170](https://github.com/kubernetes/kompose/issues/170) +- kompose --version - print out dev tag [\#170](https://github.com/kubernetes/kompose/issues/170) - suggestion: let `-` denote stdout for -o option [\#169](https://github.com/kubernetes/kompose/issues/169) - kompose up always deploys to default namespace [\#162](https://github.com/kubernetes/kompose/issues/162) - Proposal: make --dab/--bundle global flag [\#161](https://github.com/kubernetes/kompose/issues/161) - Support for "9995:9995/tcp" [\#158](https://github.com/kubernetes/kompose/issues/158) - --file for all kinds of input [\#153](https://github.com/kubernetes/kompose/issues/153) -- `kompose up` for OpenShift [\#152](https://github.com/kubernetes/kompose/issues/152) +- `kompose up` for OpenShift [\#152](https://github.com/kubernetes/kompose/issues/152) - Persistent Volumes [\#150](https://github.com/kubernetes/kompose/issues/150) - Generate ImageStream for every image in DeploymentConfig [\#145](https://github.com/kubernetes/kompose/issues/145) - godep save ./... : cannot find package "k8s.io/kubernetes/pkg/apis/authentication.k8s.io" [\#117](https://github.com/kubernetes/kompose/issues/117) @@ -1539,19 +1539,19 @@ - \[PROPOSAL\] Use -f as a global flag [\#138](https://github.com/kubernetes/kompose/issues/138) - Should we use libcompose project.Context{} instead of docker.Context{}? [\#134](https://github.com/kubernetes/kompose/issues/134) -- services should be first in List [\#130](https://github.com/kubernetes/kompose/issues/130) +- services should be first in List [\#130](https://github.com/kubernetes/kompose/issues/130) - cmd tests are not working properly [\#125](https://github.com/kubernetes/kompose/issues/125) - OpenShift conversoin - invalid DeploymentConfig [\#124](https://github.com/kubernetes/kompose/issues/124) - Wrong output when port is missing [\#121](https://github.com/kubernetes/kompose/issues/121) - Create a pod of containers sharing volume [\#116](https://github.com/kubernetes/kompose/issues/116) - kompose convert panic on v1 compose file [\#102](https://github.com/kubernetes/kompose/issues/102) -- Release: kompose binary should be statically linked [\#98](https://github.com/kubernetes/kompose/issues/98) +- Release: kompose binary should be statically linked [\#98](https://github.com/kubernetes/kompose/issues/98) - Update libcompose to v0.3.0 [\#95](https://github.com/kubernetes/kompose/issues/95) - Wrong warning about networks [\#88](https://github.com/kubernetes/kompose/issues/88) - Problems of converting volumes [\#75](https://github.com/kubernetes/kompose/issues/75) - `--stdout` output as `List` kind [\#73](https://github.com/kubernetes/kompose/issues/73) -- Print warning for unsupported fields in docker-compose format [\#71](https://github.com/kubernetes/kompose/issues/71) -- Bug: incorrect version [\#64](https://github.com/kubernetes/kompose/issues/64) +- Print warning for unsupported fields in docker-compose format [\#71](https://github.com/kubernetes/kompose/issues/71) +- Bug: incorrect version [\#64](https://github.com/kubernetes/kompose/issues/64) - panic: runtime error: invalid memory address or nil pointer dereference [\#59](https://github.com/kubernetes/kompose/issues/59) - Breaking code in app.go to multiple packags [\#55](https://github.com/kubernetes/kompose/issues/55) - Write an architecture document for kompose [\#45](https://github.com/kubernetes/kompose/issues/45) @@ -1601,8 +1601,8 @@ **Closed issues:** -- The example .dsb file doesn't work [\#85](https://github.com/kubernetes/kompose/issues/85) -- docker-compose labels should be converted to k8s annotations instead of labels [\#81](https://github.com/kubernetes/kompose/issues/81) +- The example .dsb file doesn't work [\#85](https://github.com/kubernetes/kompose/issues/85) +- docker-compose labels should be converted to k8s annotations instead of labels [\#81](https://github.com/kubernetes/kompose/issues/81) - Kompose help needs improvment [\#76](https://github.com/kubernetes/kompose/issues/76) - Should we support converting to Replica Sets? [\#63](https://github.com/kubernetes/kompose/issues/63) - `targetPort` is 0 in a converted service definition [\#60](https://github.com/kubernetes/kompose/issues/60) @@ -1612,11 +1612,11 @@ - update README for bundles, compose v2 [\#54](https://github.com/kubernetes/kompose/issues/54) - Consider changing `--from-bundles` \(bool\) to `--bundle-file` \(string\) [\#53](https://github.com/kubernetes/kompose/issues/53) - Consider changing `--rc` flag to bool and adding `--replicas` [\#52](https://github.com/kubernetes/kompose/issues/52) -- Unable to go build [\#49](https://github.com/kubernetes/kompose/issues/49) +- Unable to go build [\#49](https://github.com/kubernetes/kompose/issues/49) - convert file fail [\#47](https://github.com/kubernetes/kompose/issues/47) - \[Discuss\] Optimize convert function [\#44](https://github.com/kubernetes/kompose/issues/44) - Default objects of `kompose convert` [\#38](https://github.com/kubernetes/kompose/issues/38) -- Idea: kompose up, ps, delete, scale redirect to kubectl [\#27](https://github.com/kubernetes/kompose/issues/27) +- Idea: kompose up, ps, delete, scale redirect to kubectl [\#27](https://github.com/kubernetes/kompose/issues/27) - Print out warning for undefined fields [\#3](https://github.com/kubernetes/kompose/issues/3) **Merged pull requests:** @@ -1644,8 +1644,8 @@ - Default controller object is always generated. [\#33](https://github.com/kubernetes/kompose/issues/33) - Generating both ReplicationControllers and Deployments [\#31](https://github.com/kubernetes/kompose/issues/31) - Generating both ReplicationControllers and Deployments [\#30](https://github.com/kubernetes/kompose/issues/30) -- update OpenShift dependency [\#29](https://github.com/kubernetes/kompose/issues/29) -- Bug: chart only expect .json files [\#25](https://github.com/kubernetes/kompose/issues/25) +- update OpenShift dependency [\#29](https://github.com/kubernetes/kompose/issues/29) +- Bug: chart only expect .json files [\#25](https://github.com/kubernetes/kompose/issues/25) - Services only get created when there is a links key present [\#23](https://github.com/kubernetes/kompose/issues/23) - Services should be created first [\#21](https://github.com/kubernetes/kompose/issues/21) - Sometimes redundant services are printed/converted in `kompose convert` [\#20](https://github.com/kubernetes/kompose/issues/20) @@ -1683,6 +1683,4 @@ [Full Changelog](https://github.com/kubernetes/kompose/compare/8cfb216d635a534c18ab4571ac6862cd44e6bfbf...v0.0.1-alpha) - - -\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)* +\* _This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)_ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f9c7cb3544..90dff5b2f6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,8 +8,8 @@ We'd love to accept your patches! Before we can take them, we have to jump a cou Please fill out either the individual or corporate Contributor License Agreement (CLA). - * If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an individual CLA. - * If you work for a company that wants to allow you to contribute your work, then you'll need to sign a corporate CLA. +- If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an individual CLA. +- If you work for a company that wants to allow you to contribute your work, then you'll need to sign a corporate CLA. Contact one of the [OWNERS](OWNERS) on Slack to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll be able to accept your pull requests. diff --git a/README.md b/README.md index e48cd8b070..d0ebbb1707 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ Convert [`docker-compose.yaml`](https://raw.githubusercontent.com/kubernetes/kom ```sh $ kompose convert -f docker-compose.yaml -INFO Kubernetes file "frontend-service.yaml" created -INFO Kubernetes file "redis-master-service.yaml" created -INFO Kubernetes file "redis-slave-service.yaml" created -INFO Kubernetes file "frontend-deployment.yaml" created -INFO Kubernetes file "redis-master-deployment.yaml" created -INFO Kubernetes file "redis-slave-deployment.yaml" created +INFO Kubernetes file "frontend-service.yaml" created +INFO Kubernetes file "redis-master-service.yaml" created +INFO Kubernetes file "redis-slave-service.yaml" created +INFO Kubernetes file "frontend-deployment.yaml" created +INFO Kubernetes file "redis-master-deployment.yaml" created +INFO Kubernetes file "redis-slave-deployment.yaml" created ``` Other examples are provided in the _examples_ [directory](./examples). @@ -29,22 +29,23 @@ We have multiple ways to install Kompose. Our preferred method is downloading th Our entire list of installation methods are located in our [installation.md](/docs/installation.md) document. Installation methods: - - [Binary (Preferred method)](/docs/installation.md#github-release) - - [Go](/docs/installation.md#go) - - [CentOS](/docs/installation.md#centos) - - [Fedora](/docs/installation.md#fedora) - - [openSUSE/SLE](/docs/installation.md#opensusesle) - - [Ubuntu/Debian](/docs/installation.md#ubuntudebian) - - [NixOS](/docs/installation.md#nixos) - - [macOS (Homebrew and MacPorts)](/docs/installation.md#macos) - - [Windows](/docs/installation.md#windows) - - [Docker](/docs/installation.md#docker) + +- [Binary (Preferred method)](/docs/installation.md#github-release) +- [Go](/docs/installation.md#go) +- [CentOS](/docs/installation.md#centos) +- [Fedora](/docs/installation.md#fedora) +- [openSUSE/SLE](/docs/installation.md#opensusesle) +- [Ubuntu/Debian](/docs/installation.md#ubuntudebian) +- [NixOS](/docs/installation.md#nixos) +- [macOS (Homebrew and MacPorts)](/docs/installation.md#macos) +- [Windows](/docs/installation.md#windows) +- [Docker](/docs/installation.md#docker) #### Binary installation Kompose is released via GitHub on a three-week cycle, you can see all current releases on the [GitHub release page](https://github.com/kubernetes/kompose/releases). -__Linux and macOS:__ +**Linux and macOS:** ```sh # Linux @@ -57,7 +58,7 @@ chmod +x kompose sudo mv ./kompose /usr/local/bin/kompose ``` -__Windows:__ +**Windows:** Download from [GitHub](https://github.com/kubernetes/kompose/releases/download/v1.28.0/kompose-windows-amd64.exe) and add the binary to your PATH. @@ -79,29 +80,41 @@ kompose completion fish | source ## Development and building of Kompose ### Building with `go` -__Requisites:__ + +**Requisites:** + 1. [make](https://www.gnu.org/software/make/) 2. [Golang](https://golang.org/) v1.6 or later 3. Set `GOPATH` correctly or click [SettingGOPATH](https://github.com/golang/go/wiki/SettingGOPATH) for details -__Steps:__ +**Steps:** + 1. Clone repository + ```console $ git clone https://github.com/kubernetes/kompose.git $GOPATH/src/github.com/kubernetes/kompose ``` + 2. Change directory to the cloned repo. + ```console cd $GOPATH/src/github.com/kubernetes/kompose ``` + 3. Build with `make` + ```console $ make bin ``` + 4. Or build with `go` + ```console $ go build -o kompose main.go ``` + 5. Test your changes + ```console $ make test ``` @@ -121,12 +134,11 @@ Here is a list of all available docs: ## Community, Discussion, Contribution, and Support -__Issues:__ If you find any issues, please [file it](https://github.com/kubernetes/kompose/issues). - -__Kubernetes Community:__ As part of the Kubernetes ecosystem, we follow the Kubernetes community principles. More information can be found on the [community page](http://kubernetes.io/community/). +**Issues:** If you find any issues, please [file it](https://github.com/kubernetes/kompose/issues). -__Chat (Slack):__ We're fairly active on [Slack](http://slack.kubernetes.io#kompose) and you can find us in the #kompose channel. +**Kubernetes Community:** As part of the Kubernetes ecosystem, we follow the Kubernetes community principles. More information can be found on the [community page](http://kubernetes.io/community/). +**Chat (Slack):** We're fairly active on [Slack](http://slack.kubernetes.io#kompose) and you can find us in the #kompose channel. ### Code of Conduct diff --git a/RELEASE.md b/RELEASE.md index 63d7904a7c..ab20231d4c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -5,4 +5,4 @@ The process is as follows: 1. A PR proposing a new release with a changelog since the last release 1. At least 2 or more [OWNERS](OWNERS) must LGTM this release 1. The release PR is closed -1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION` \ No newline at end of file +1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION` diff --git a/build/README.md b/build/README.md index 9917d4048e..6a0bccba2d 100644 --- a/build/README.md +++ b/build/README.md @@ -2,18 +2,20 @@ There are instructions on how to build the RPM. -# 1. Gofed +# 1. Gofed Grab gofed from https://github.com/gofed/gofed Choose which version of the repo you want to build. For kompose it was 0.3.0 and the commit was 135165b39c55d29a5426479ded81eddd56bfbaf4 Run the following to generate spec file: + ```sh gofed repo2spec --detect github.com/kubernetes/kompose --commit 135165b39c55d29a5426479ded81eddd56bfbaf4 --with-extra --with-build -f ``` The spec file is now located at: + ```sh $HOME/gofed/golang-github-kubernetes-incubator-kompose/golang-github-kubernetes-incubator-kompose.spec ``` @@ -25,13 +27,13 @@ Now we need to go through and fix some things. Generate bundled dependencies by using parsedeps.go Go to the kompose source folder and then run: + ```sh go run parsedeps.go ``` In the future this will possibly done by `gofed`, see: https://github.com/gofed/gofed/issues/42 - # 3. Building a source RPM locally on CentOS First, follow instructions to do local setup https://wiki.centos.org/HowTos/SetupRpmBuildEnvironment @@ -45,6 +47,7 @@ Copy the kompose code directory with name `kompose-135165b39c55d29a5426479ded81e Tar the `kompose-135165b39c55d29a5426479ded81eddd56bfbaf4` code directory as `kompose-135165b.tar.gz` and copy it to `$HOME/rpmbuild/SOURCES/` Run following command: + ```sh rpmbuild -ba kompose.spec ``` @@ -54,6 +57,7 @@ Find the srpm in `$HOME/rpmbuild/SRPMS` Find the RPM in `$HOME/rpmbuild/RPM/arch/` Check that the dependencies are proper: + ```sh rpm -qpR RPMS/x86_64/kompose-0.3.0-0.1.git135165b.el7.centos.x86_64.rpm ``` @@ -63,12 +67,14 @@ rpm -qpR RPMS/x86_64/kompose-0.3.0-0.1.git135165b.el7.centos.x86_64.rpm First, setup your environment in order to run Koji: https://fedoraproject.org/wiki/Using_the_Koji_build_system Example setup: + ```sh fedora-packager-setup kinit @FEDORAPROJECT.ORG ``` To build it on koji run: + ``` koji build --scratch rawhide kompose-0.3.0-0.1.git135165b.el7.centos.src.rpm ``` diff --git a/docs/Gemfile b/docs/Gemfile index e16625af19..d32463f15d 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -29,3 +29,5 @@ end gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform? gem "jekyll-redirect-from" + +gem "webrick", "~> 1.7" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 3b5ed4e502..63c85b7445 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,10 +1,10 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) colorator (1.1.0) - concurrent-ruby (1.1.9) + concurrent-ruby (1.1.10) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) @@ -12,7 +12,7 @@ GEM ffi (1.15.5) forwardable-extended (2.6.0) http_parser.rb (0.8.0) - i18n (1.8.11) + i18n (1.12.0) concurrent-ruby (~> 1.0) jekyll (4.0.1) addressable (~> 2.4) @@ -29,22 +29,22 @@ GEM rouge (~> 3.0) safe_yaml (~> 1.0) terminal-table (~> 1.8) - jekyll-feed (0.16.0) + jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) jekyll-redirect-from (0.16.0) jekyll (>= 3.3, < 5.0) - jekyll-sass-converter (2.1.0) + jekyll-sass-converter (2.2.0) sassc (> 2.0.1, < 3.0) - jekyll-seo-tag (2.7.1) + jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - kramdown (2.3.1) + kramdown (2.4.0) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - liquid (4.0.3) - listen (3.7.0) + liquid (4.0.4) + listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) @@ -54,12 +54,12 @@ GEM jekyll-seo-tag (~> 2.1) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.6) - rb-fsevent (0.11.0) + public_suffix (5.0.1) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.5) - rouge (3.27.0) + rouge (3.30.0) safe_yaml (1.0.5) sassc (2.4.0) ffi (~> 1.9) @@ -68,10 +68,11 @@ GEM thread_safe (0.3.6) tzinfo (1.2.10) thread_safe (~> 0.1) - tzinfo-data (1.2021.5) + tzinfo-data (1.2022.7) tzinfo (>= 1.0.0) unicode-display_width (1.8.0) wdm (0.1.1) + webrick (1.7.0) PLATFORMS ruby @@ -84,6 +85,7 @@ DEPENDENCIES tzinfo (~> 1.2) tzinfo-data wdm (~> 0.1.1) + webrick (~> 1.7) BUNDLED WITH - 2.1.4 + 2.4.4 diff --git a/docs/architecture.md b/docs/architecture.md index d54e35d8bc..736b907a5b 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -2,36 +2,35 @@ layout: default permalink: /architecture/ title: Architecture -redirect_from: +redirect_from: - /docs/architecture.md/ - /docs/architecture/ --- # Architecture and Internal Design -* TOC -{:toc} +- TOC -`kompose` has 3 stages: Loader, Transformer and Outputter. Each Stage should have well defined interface so it is easy to write new Loader, Transformer or Outputters and plug it in. Currently only Loader and Transformer interfaces are defined. +`kompose` has 3 stages: _Loader_, _Transformer_ and _Outputter_. Each stage should have a well-defined interface, so it is easy to write a new Loader, Transformer or Outputters and plug it in. Currently, only Loader and Transformer interfaces are defined. ![Design Diagram](https://github.com/kubernetes/kompose/blob/master/docs/images/design_diagram.png) ## Loader -Loader reads input file (now `kompose` supports [Docker Compose](https://docs.docker.com/compose) v1, v2 and converts it to KomposeObject. +Loader reads input file now `kompose` supports [Docker Compose](https://docs.docker.com/compose) v1, v2 and converts it to KomposeObject. Loader is represented by a Loader interface: - + ```go type Loader interface { LoadFile(file string) kobject.KomposeObject } ``` -Every loader “implementation” should be placed into `kompose/pkg/loader` (like compose). More input formats will be supported in future. You can take a look for more details at: +Every loader “implementation” should be placed into `kompose/pkg/loader` (like compose). More input formats will be supported in the future. You can take a look for more details at: -* [kompose/pkg/loader](https://github.com/kubernetes/kompose/tree/master/pkg/loader) -* [kompose/pkg/loader/compose](https://github.com/kubernetes/kompose/tree/master/pkg/loader/compose) +- [kompose/pkg/loader](https://github.com/kubernetes/kompose/tree/master/pkg/loader) +- [kompose/pkg/loader/compose](https://github.com/kubernetes/kompose/tree/master/pkg/loader/compose) ## KomposeObject @@ -40,38 +39,38 @@ Every loader “implementation” should be placed into `kompose/pkg/loader` (li ```go // KomposeObject holds the generic struct of Kompose transformation type KomposeObject struct { - ServiceConfigs map[string]ServiceConfig + ServiceConfigs map[string]ServiceConfig } // ServiceConfig holds the basic struct of a container type ServiceConfig struct { - ContainerName string - Image string - Environment []EnvVar - Port []Ports - Command []string - WorkingDir string - Args []string - Volumes []string - Network []string - Labels map[string]string - Annotations map[string]string - CPUSet string - CPUShares int64 - CPUQuota int64 - CapAdd []string - CapDrop []string - Entrypoint []string - Expose []string - Privileged bool - Restart string - User string + ContainerName string + Image string + Environment []EnvVar + Port []Ports + Command []string + WorkingDir string + Args []string + Volumes []string + Network []string + Labels map[string]string + Annotations map[string]string + CPUSet string + CPUShares int64 + CPUQuota int64 + CapAdd []string + CapDrop []string + Entrypoint []string + Expose []string + Privileged bool + Restart string + User string } ``` ## Transformer -Transformer takes KomposeObject and converts it to target/output format (at this moment, there are sets of kubernetes/openshift objects). Similar to `Loader`, Transformer is represented by a Transformer interface: +Transformer takes KomposeObject and converts it to target/output format (currently, there are sets of Kubernetes/OpenShift objects). Similar to `Loader`, Transformer is represented by a Transformer interface: ```go type Transformer interface { @@ -79,12 +78,12 @@ type Transformer interface { } ``` -If you wish to add more providers which contain different kind of objects, transformer would be the place to look into. At this moment Kompose supports Kubernetes (by default) and Openshift providers. More details at: +If you wish to add more providers which contain different kind of objects, transformer would be the place to look into. Currently, Kompose supports Kubernetes (by default) and OpenShift providers. More details at: -* [kompose/pkg/transformer](https://github.com/kubernetes/kompose/tree/master/pkg/transformer) -* [kompose/pkg/transformer/kubernetes](https://github.com/kubernetes/kompose/tree/master/pkg/transformer/kubernetes) -* [kompose/pkg/transformer/openshift](https://github.com/kubernetes/kompose/tree/master/pkg/transformer/openshift) +- [kompose/pkg/transformer](https://github.com/kubernetes/kompose/tree/master/pkg/transformer) +- [kompose/pkg/transformer/Kubernetes](https://github.com/kubernetes/kompose/tree/master/pkg/transformer/kubernetes) +- [kompose/pkg/transformer/openshift](https://github.com/kubernetes/kompose/tree/master/pkg/transformer/openshift) ## Outputter -Outputter takes Transformer result and executes given action. For example action can be displaying result to stdout or directly deploying artifacts to Kubernetes/OpenShift. +Outputter takes Transformer result and executes the given action. For example, action can be displaying result to stdout or directly deploying artifacts to Kubernetes/OpenShift. diff --git a/docs/assets/js/bootstrap.min.js b/docs/assets/js/bootstrap.min.js index 27aace3138..ef5f088d47 100644 --- a/docs/assets/js/bootstrap.min.js +++ b/docs/assets/js/bootstrap.min.js @@ -3,5 +3,1957 @@ * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(r.end)},supportsTransitionEnd:function(){return Boolean(r)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){var r=i[s],o=n[s],l=o&&a.isElement(o)?"element":t(o);if(!new RegExp(r).test(l))throw new Error(e.toUpperCase()+': Option "'+s+'" provided type "'+l+'" but expected type "'+r+'".')}}};return r=i(),e.fn.emulateTransitionEnd=s,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),r=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t},o=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e},a=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},o={ALERT:"alert",FADE:"fade",SHOW:"show"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+o.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(o.SHOW),s.supportsTransitionEnd()&&e(t).hasClass(o.FADE)?e(t).one(s.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.alert");s||(s=new t(this),i.data("bs.alert",s)),"close"===n&&s[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,a._handleDismiss(new a)),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),l=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},s={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,r=e(this._element).closest(s.DATA_TOGGLE)[0];if(r){var o=e(this._element).find(s.INPUT)[0];if(o){if("radio"===o.type)if(o.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(r).find(s.ACTIVE)[0];a&&e(a).removeClass(i.ACTIVE)}if(t){if(o.hasAttribute("disabled")||r.hasAttribute("disabled")||o.classList.contains("disabled")||r.classList.contains("disabled"))return;o.checked=!e(this._element).hasClass(i.ACTIVE),e(o).trigger("change")}o.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,s.DATA_TOGGLE_CARROT,function(t){t.preventDefault();var n=t.target;e(n).hasClass(i.BUTTON)||(n=e(n).closest(s.BUTTON)),a._jQueryInterface.call(e(n),"toggle")}).on(o.FOCUS_BLUR_DATA_API,s.DATA_TOGGLE_CARROT,function(t){var n=e(t.target).closest(s.BUTTON)[0];e(n).toggleClass(i.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),h=function(){var t="carousel",n="bs.carousel",i="."+n,o=e.fn[t],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},h={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},c={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},u={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},d={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},f=function(){function o(t,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=e(t)[0],this._indicatorsElement=e(this._element).find(d.INDICATORS)[0],this._addEventListeners()}var f=o.prototype;return f.next=function(){this._isSliding||this._slide(h.NEXT)},f.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},f.prev=function(){this._isSliding||this._slide(h.PREV)},f.pause=function(t){t||(this._isPaused=!0),e(this._element).find(d.NEXT_PREV)[0]&&s.supportsTransitionEnd()&&(s.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},f.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},f.to=function(t){var n=this;this._activeElement=e(this._element).find(d.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(c.SLID,function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var s=t>i?h.NEXT:h.PREV;this._slide(s,this._items[t])}},f.dispose=function(){e(this._element).off(i),e.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},f._getConfig=function(n){return n=e.extend({},a,n),s.typeCheckConfig(t,n,l),n},f._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(c.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(e(this._element).on(c.MOUSEENTER,function(e){return t.pause(e)}).on(c.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&e(this._element).on(c.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},f._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next();break;default:return}},f._getItemIndex=function(t){return this._items=e.makeArray(e(t).parent().find(d.ITEM)),this._items.indexOf(t)},f._getItemByDirection=function(t,e){var n=t===h.NEXT,i=t===h.PREV,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0===s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===h.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},f._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),s=this._getItemIndex(e(this._element).find(d.ACTIVE_ITEM)[0]),r=e.Event(c.SLIDE,{relatedTarget:t,direction:n,from:s,to:i});return e(this._element).trigger(r),r},f._setActiveIndicatorElement=function(t){if(this._indicatorsElement){e(this._indicatorsElement).find(d.ACTIVE).removeClass(u.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&e(n).addClass(u.ACTIVE)}},f._slide=function(t,n){var i,r,o,a=this,l=e(this._element).find(d.ACTIVE_ITEM)[0],f=this._getItemIndex(l),_=n||l&&this._getItemByDirection(t,l),g=this._getItemIndex(_),m=Boolean(this._interval);if(t===h.NEXT?(i=u.LEFT,r=u.NEXT,o=h.LEFT):(i=u.RIGHT,r=u.PREV,o=h.RIGHT),_&&e(_).hasClass(u.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(_,o).isDefaultPrevented()&&l&&_){this._isSliding=!0,m&&this.pause(),this._setActiveIndicatorElement(_);var p=e.Event(c.SLID,{relatedTarget:_,direction:o,from:f,to:g});s.supportsTransitionEnd()&&e(this._element).hasClass(u.SLIDE)?(e(_).addClass(r),s.reflow(_),e(l).addClass(i),e(_).addClass(i),e(l).one(s.TRANSITION_END,function(){e(_).removeClass(i+" "+r).addClass(u.ACTIVE),e(l).removeClass(u.ACTIVE+" "+r+" "+i),a._isSliding=!1,setTimeout(function(){return e(a._element).trigger(p)},0)}).emulateTransitionEnd(600)):(e(l).removeClass(u.ACTIVE),e(_).addClass(u.ACTIVE),this._isSliding=!1,e(this._element).trigger(p)),m&&this.cycle()}},o._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),s=e.extend({},a,e(this).data());"object"==typeof t&&e.extend(s,t);var r="string"==typeof t?t:s.slide;if(i||(i=new o(this,s),e(this).data(n,i)),"number"==typeof t)i.to(t);else if("string"==typeof r){if("undefined"==typeof i[r])throw new Error('No method named "'+r+'"');i[r]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiClickHandler=function(t){var i=s.getSelectorFromElement(this);if(i){var r=e(i)[0];if(r&&e(r).hasClass(u.CAROUSEL)){var a=e.extend({},e(r).data(),e(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),o._jQueryInterface.call(e(r),a),l&&e(r).data(n).to(l),t.preventDefault()}}},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}}]),o}();return e(document).on(c.CLICK_DATA_API,d.DATA_SLIDE,f._dataApiClickHandler),e(window).on(c.LOAD_DATA_API,function(){e(d.DATA_RIDE).each(function(){var t=e(this);f._jQueryInterface.call(t,t.data())})}),e.fn[t]=f._jQueryInterface,e.fn[t].Constructor=f,e.fn[t].noConflict=function(){return e.fn[t]=o,f._jQueryInterface},f}(),c=function(){var t="collapse",n="bs.collapse",i=e.fn[t],o={toggle:!0,parent:""},a={toggle:"boolean",parent:"(string|element)"},l={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-api"},h={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},c={WIDTH:"width",HEIGHT:"height"},u={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},d=function(){function i(t,n){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(n),this._triggerArray=e.makeArray(e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var i=e(u.DATA_TOGGLE),r=0;r0&&this._triggerArray.push(o)}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var d=i.prototype;return d.toggle=function(){e(this._element).hasClass(h.SHOW)?this.hide():this.show()},d.show=function(){var t=this;if(!this._isTransitioning&&!e(this._element).hasClass(h.SHOW)){var r,o;if(this._parent&&((r=e.makeArray(e(this._parent).children().children(u.ACTIVES))).length||(r=null)),!(r&&(o=e(r).data(n))&&o._isTransitioning)){var a=e.Event(l.SHOW);if(e(this._element).trigger(a),!a.isDefaultPrevented()){r&&(i._jQueryInterface.call(e(r),"hide"),o||e(r).data(n,null));var c=this._getDimension();e(this._element).removeClass(h.COLLAPSE).addClass(h.COLLAPSING),this._element.style[c]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(h.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var d=function(){e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).addClass(h.SHOW),t._element.style[c]="",t.setTransitioning(!1),e(t._element).trigger(l.SHOWN)};if(s.supportsTransitionEnd()){var f="scroll"+(c[0].toUpperCase()+c.slice(1));e(this._element).one(s.TRANSITION_END,d).emulateTransitionEnd(600),this._element.style[c]=this._element[f]+"px"}else d()}}}},d.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(h.SHOW)){var n=e.Event(l.HIDE);if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",s.reflow(this._element),e(this._element).addClass(h.COLLAPSING).removeClass(h.COLLAPSE).removeClass(h.SHOW),this._triggerArray.length)for(var r=0;r0},g._getPopperConfig=function(){var t=this,n={};"function"==typeof this._config.offset?n.fn=function(n){return n.offsets=e.extend({},n.offsets,t._config.offset(n.offsets)||{}),n}:n.offset=this._config.offset;var i={placement:this._getPlacement(),modifiers:{offset:n,flip:{enabled:this._config.flip}}};return this._inNavbar&&(i.modifiers.applyStyle={enabled:!this._inNavbar}),i},a._jQueryInterface=function(t){return this.each(function(){var n=e(this).data(i),s="object"==typeof t?t:null;if(n||(n=new a(this,s),e(this).data(i,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},a._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=e.makeArray(e(u.DATA_TOGGLE)),s=0;s0&&r--,40===t.which&&rdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},u._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},u._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip"},u={SHOW:"show",OUT:"out"},d={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},f={FADE:"fade",SHOW:"show"},_={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},g={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},m=function(){function o(t,e){this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var m=o.prototype;return m.enable=function(){this._isEnabled=!0},m.disable=function(){this._isEnabled=!1},m.toggleEnabled=function(){this._isEnabled=!this._isEnabled},m.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass(f.SHOW))return void this._leave(null,this);this._enter(null,this)}},m.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},m.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var r=e.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!r)return;var a=this.getTipElement(),l=s.getUID(this.constructor.NAME);a.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(a).addClass(f.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,c=this._getAttachment(h);this.addAttachmentClass(c);var d=!1===this.config.container?document.body:e(this.config.container);e(a).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(a).appendTo(d),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,a,{placement:c,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:_.ARROW}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),e(a).addClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().on("mouseover",null,e.noop);var g=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===u.OUT&&t._leave(null,t)};s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(this.tip).one(s.TRANSITION_END,g).emulateTransitionEnd(o._TRANSITION_DURATION):g()}},m.hide=function(t){var n=this,i=this.getTipElement(),r=e.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==u.SHOW&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};e(this.element).trigger(r),r.isDefaultPrevented()||(e(i).removeClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),this._activeTrigger[g.CLICK]=!1,this._activeTrigger[g.FOCUS]=!1,this._activeTrigger[g.HOVER]=!1,s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(i).one(s.TRANSITION_END,o).emulateTransitionEnd(150):o(),this._hoverState="")},m.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},m.isWithContent=function(){return Boolean(this.getTitle())},m.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},m.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},m.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(_.TOOLTIP_INNER),this.getTitle()),t.removeClass(f.FADE+" "+f.SHOW)},m.setElementContent=function(t,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text()):t[i?"html":"text"](n)},m.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},m._getAttachment=function(t){return h[t.toUpperCase()]},m._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==g.MANUAL){var i=n===g.HOVER?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,s=n===g.HOVER?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(s,t.config.selector,function(e){return t._leave(e)})}e(t.element).closest(".modal").on("hide.bs.modal",function(){return t.hide()})}),this.config.selector?this.config=e.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},m._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},m._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?g.FOCUS:g.HOVER]=!0),e(n.getTipElement()).hasClass(f.SHOW)||n._hoverState===u.SHOW?n._hoverState=u.SHOW:(clearTimeout(n._timeout),n._hoverState=u.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===u.SHOW&&n.show()},n.config.delay.show):n.show())},m._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?g.FOCUS:g.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=u.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===u.OUT&&n.hide()},n.config.delay.hide):n.hide())},m._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},m._getConfig=function(n){return"number"==typeof(n=e.extend({},this.constructor.Default,e(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),s.typeCheckConfig(t,n,this.constructor.DefaultType),n},m._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},m._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(a);null!==n&&n.length>0&&t.removeClass(n.join(""))},m._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},m._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass(f.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},o._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new o(this,i),e(this).data("bs.tooltip",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return c}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return d}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return l}}]),o}();return e.fn[t]=m._jQueryInterface,e.fn[t].Constructor=m,e.fn[t].noConflict=function(){return e.fn[t]=o,m._jQueryInterface},m}(),_=function(){var t="popover",n=".bs.popover",i=e.fn[t],s=new RegExp("(^|\\s)bs-popover\\S+","g"),a=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:''}),l=e.extend({},f.DefaultType,{content:"(string|element|function)"}),h={FADE:"fade",SHOW:"show"},c={TITLE:".popover-header",CONTENT:".popover-body"},u={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},d=function(i){function d(){return i.apply(this,arguments)||this}o(d,i);var f=d.prototype;return f.isWithContent=function(){return this.getTitle()||this._getContent()},f.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},f.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},f.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(c.TITLE),this.getTitle()),this.setElementContent(t.find(c.CONTENT),this._getContent()),t.removeClass(h.FADE+" "+h.SHOW)},f._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},f._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(s);null!==n&&n.length>0&&t.removeClass(n.join(""))},d._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/destroy|hide/.test(t))&&(n||(n=new d(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(d,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return u}},{key:"EVENT_KEY",get:function(){return n}},{key:"DefaultType",get:function(){return l}}]),d}(f);return e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=i,d._jQueryInterface},d}(),g=function(){var t="scrollspy",n=e.fn[t],i={offset:10,method:"auto",target:""},o={offset:"number",method:"string",target:"(string|element)"},a={ACTIVATE:"activate.bs.scrollspy",SCROLL:"scroll.bs.scrollspy",LOAD_DATA_API:"load.bs.scrollspy.data-api"},l={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},h={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},c={OFFSET:"offset",POSITION:"position"},u=function(){function n(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" "+h.NAV_LINKS+","+this._config.target+" "+h.LIST_ITEMS+","+this._config.target+" "+h.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(a.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var u=n.prototype;return u.refresh=function(){var t=this,n=this._scrollElement!==this._scrollElement.window?c.POSITION:c.OFFSET,i="auto"===this._config.method?n:this._config.method,r=i===c.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),e.makeArray(e(this._selector)).map(function(t){var n,o=s.getSelectorFromElement(t);if(o&&(n=e(o)[0]),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[i]().top+r,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},u.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},u._getConfig=function(n){if("string"!=typeof(n=e.extend({},i,n)).target){var r=e(n.target).attr("id");r||(r=s.getUID(t),e(n.target).attr("id",r)),n.target="#"+r}return s.typeCheckConfig(t,n,o),n},u._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},u._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},u._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},u._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;)this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&("undefined"==typeof this._offsets[s+1]||t li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},a=function(){function t(t){this._element=t}var a=t.prototype;return a.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(i.ACTIVE)||e(this._element).hasClass(i.DISABLED))){var r,a,l=e(this._element).closest(o.NAV_LIST_GROUP)[0],h=s.getSelectorFromElement(this._element);if(l){var c="UL"===l.nodeName?o.ACTIVE_UL:o.ACTIVE;a=e.makeArray(e(l).find(c)),a=a[a.length-1]}var u=e.Event(n.HIDE,{relatedTarget:this._element}),d=e.Event(n.SHOW,{relatedTarget:a});if(a&&e(a).trigger(u),e(this._element).trigger(d),!d.isDefaultPrevented()&&!u.isDefaultPrevented()){h&&(r=e(h)[0]),this._activate(this._element,l);var f=function(){var i=e.Event(n.HIDDEN,{relatedTarget:t._element}),s=e.Event(n.SHOWN,{relatedTarget:a});e(a).trigger(i),e(t._element).trigger(s)};r?this._activate(r,r.parentNode,f):f()}}},a.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},a._activate=function(t,n,r){var a,l=this,h=(a="UL"===n.nodeName?e(n).find(o.ACTIVE_UL):e(n).children(o.ACTIVE))[0],c=r&&s.supportsTransitionEnd()&&h&&e(h).hasClass(i.FADE),u=function(){return l._transitionComplete(t,h,c,r)};h&&c?e(h).one(s.TRANSITION_END,u).emulateTransitionEnd(150):u(),h&&e(h).removeClass(i.SHOW)},a._transitionComplete=function(t,n,r,a){if(n){e(n).removeClass(i.ACTIVE);var l=e(n.parentNode).find(o.DROPDOWN_ACTIVE_CHILD)[0];l&&e(l).removeClass(i.ACTIVE),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass(i.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),r?(s.reflow(t),e(t).addClass(i.SHOW)):e(t).removeClass(i.FADE),t.parentNode&&e(t.parentNode).hasClass(i.DROPDOWN_MENU)){var h=e(t).closest(o.DROPDOWN)[0];h&&e(h).find(o.DROPDOWN_TOGGLE).addClass(i.ACTIVE),t.setAttribute("aria-expanded",!0)}a&&a()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.tab");if(s||(s=new t(this),i.data("bs.tab",s)),"string"==typeof n){if("undefined"==typeof s[n])throw new Error('No method named "'+n+'"');s[n]()}})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(n.CLICK_DATA_API,o.DATA_TOGGLE,function(t){t.preventDefault(),a._jQueryInterface.call(e(this),"show")}),e.fn.tab=a._jQueryInterface,e.fn.tab.Constructor=a,e.fn.tab.noConflict=function(){return e.fn.tab=t,a._jQueryInterface},a}();return function(){if("undefined"==typeof e)throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=s,t.Alert=a,t.Button=l,t.Carousel=h,t.Collapse=c,t.Dropdown=u,t.Modal=d,t.Popover=_,t.Scrollspy=g,t.Tab=m,t.Tooltip=f,t}({},$,Popper); -//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file +var bootstrap = function(t, e, n) { + "use strict"; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var i = e[n]; + i.enumerable = i.enumerable || !1, + i.configurable = !0, + "value" in i && (i.writable = !0), + Object.defineProperty(t, i.key, i); + } + } + e = e && e.hasOwnProperty("default") ? e.default : e, n = n && n.hasOwnProperty("default") ? n.default : n; + var s = function() { + function t(t) { + return {}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); + } + function n() { + return { + bindType: r.end, + delegateType: r.end, + handle: function(t) { + if (e(t.target).is(this)) return t.handleObj.handler.apply(this, arguments); + }, + }; + } + function i() { + if (window.QUnit) return !1; + var t = document.createElement("bootstrap"); + for (var e in o) if ("undefined" != typeof t.style[e]) return { end: o[e] }; + return !1; + } + function s(t) { + var n = this, i = !1; + return e(this).one(a.TRANSITION_END, function() { + i = !0; + }), + setTimeout(function() { + i || a.triggerTransitionEnd(n); + }, t), + this; + } + var r = !1, + o = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "oTransitionEnd otransitionend", + transition: "transitionend", + }, + a = { + TRANSITION_END: "bsTransitionEnd", + getUID: function(t) { + do { + t += ~~(1e6 * Math.random()); + } while (document.getElementById(t)); + return t; + }, + getSelectorFromElement: function(t) { + var n = t.getAttribute("data-target"); + n && "#" !== n || (n = t.getAttribute("href") || ""); + try { + return e(document).find(n).length > 0 ? n : null; + } catch (t) { + return null; + } + }, + reflow: function(t) { + return t.offsetHeight; + }, + triggerTransitionEnd: function(t) { + e(t).trigger(r.end); + }, + supportsTransitionEnd: function() { + return Boolean(r); + }, + isElement: function(t) { + return (t[0] || t).nodeType; + }, + typeCheckConfig: function(e, n, i) { + for (var s in i) { + if (Object.prototype.hasOwnProperty.call(i, s)) { + var r = i[s], o = n[s], l = o && a.isElement(o) ? "element" : t(o); + if (!new RegExp(r).test(l)) { + throw new Error( + e.toUpperCase() + ": Option \"" + s + "\" provided type \"" + l + "\" but expected type \"" + r + + "\".", + ); + } + } + } + }, + }; + return r = i(), + e.fn.emulateTransitionEnd = s, + a.supportsTransitionEnd() && (e.event.special[a.TRANSITION_END] = n()), + a; + }(), + r = function(t, e, n) { + return e && i(t.prototype, e), n && i(t, n), t; + }, + o = function(t, e) { + t.prototype = Object.create(e.prototype), t.prototype.constructor = t, t.__proto__ = e; + }, + a = function() { + var t = "alert", + n = e.fn[t], + i = { CLOSE: "close.bs.alert", CLOSED: "closed.bs.alert", CLICK_DATA_API: "click.bs.alert.data-api" }, + o = { ALERT: "alert", FADE: "fade", SHOW: "show" }, + a = function() { + function t(t) { + this._element = t; + } + var n = t.prototype; + return n.close = function(t) { + t = t || this._element; + var e = this._getRootElement(t); + this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e); + }, + n.dispose = function() { + e.removeData(this._element, "bs.alert"), this._element = null; + }, + n._getRootElement = function(t) { + var n = s.getSelectorFromElement(t), i = !1; + return n && (i = e(n)[0]), i || (i = e(t).closest("." + o.ALERT)[0]), i; + }, + n._triggerCloseEvent = function(t) { + var n = e.Event(i.CLOSE); + return e(t).trigger(n), n; + }, + n._removeElement = function(t) { + var n = this; + e(t).removeClass(o.SHOW), + s.supportsTransitionEnd() && e(t).hasClass(o.FADE) + ? e(t).one(s.TRANSITION_END, function(e) { + return n._destroyElement(t, e); + }).emulateTransitionEnd(150) + : this._destroyElement(t); + }, + n._destroyElement = function(t) { + e(t).detach().trigger(i.CLOSED).remove(); + }, + t._jQueryInterface = function(n) { + return this.each(function() { + var i = e(this), s = i.data("bs.alert"); + s || (s = new t(this), i.data("bs.alert", s)), "close" === n && s[n](this); + }); + }, + t._handleDismiss = function(t) { + return function(e) { + e && e.preventDefault(), t.close(this); + }; + }, + r(t, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }]), + t; + }(); + return e(document).on( + i.CLICK_DATA_API, + { DISMISS: "[data-dismiss=\"alert\"]" }.DISMISS, + a._handleDismiss(new a()), + ), + e.fn[t] = a._jQueryInterface, + e.fn[t].Constructor = a, + e.fn[t].noConflict = function() { + return e.fn[t] = n, a._jQueryInterface; + }, + a; + }(), + l = function() { + var t = "button", + n = e.fn[t], + i = { ACTIVE: "active", BUTTON: "btn", FOCUS: "focus" }, + s = { + DATA_TOGGLE_CARROT: "[data-toggle^=\"button\"]", + DATA_TOGGLE: "[data-toggle=\"buttons\"]", + INPUT: "input", + ACTIVE: ".active", + BUTTON: ".btn", + }, + o = { + CLICK_DATA_API: "click.bs.button.data-api", + FOCUS_BLUR_DATA_API: "focus.bs.button.data-api blur.bs.button.data-api", + }, + a = function() { + function t(t) { + this._element = t; + } + var n = t.prototype; + return n.toggle = function() { + var t = !0, n = !0, r = e(this._element).closest(s.DATA_TOGGLE)[0]; + if (r) { + var o = e(this._element).find(s.INPUT)[0]; + if (o) { + if ("radio" === o.type) { + if (o.checked && e(this._element).hasClass(i.ACTIVE)) t = !1; + else { + var a = e(r).find(s.ACTIVE)[0]; + a && e(a).removeClass(i.ACTIVE); + } + } + if (t) { + if ( + o.hasAttribute("disabled") || r.hasAttribute("disabled") || o.classList.contains("disabled") + || r.classList.contains("disabled") + ) return; + o.checked = !e(this._element).hasClass(i.ACTIVE), e(o).trigger("change"); + } + o.focus(), n = !1; + } + } + n && this._element.setAttribute("aria-pressed", !e(this._element).hasClass(i.ACTIVE)), + t && e(this._element).toggleClass(i.ACTIVE); + }, + n.dispose = function() { + e.removeData(this._element, "bs.button"), this._element = null; + }, + t._jQueryInterface = function(n) { + return this.each(function() { + var i = e(this).data("bs.button"); + i || (i = new t(this), e(this).data("bs.button", i)), "toggle" === n && i[n](); + }); + }, + r(t, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }]), + t; + }(); + return e(document).on(o.CLICK_DATA_API, s.DATA_TOGGLE_CARROT, function(t) { + t.preventDefault(); + var n = t.target; + e(n).hasClass(i.BUTTON) || (n = e(n).closest(s.BUTTON)), a._jQueryInterface.call(e(n), "toggle"); + }).on(o.FOCUS_BLUR_DATA_API, s.DATA_TOGGLE_CARROT, function(t) { + var n = e(t.target).closest(s.BUTTON)[0]; + e(n).toggleClass(i.FOCUS, /^focus(in)?$/.test(t.type)); + }), + e.fn[t] = a._jQueryInterface, + e.fn[t].Constructor = a, + e.fn[t].noConflict = function() { + return e.fn[t] = n, a._jQueryInterface; + }, + a; + }(), + h = function() { + var t = "carousel", + n = "bs.carousel", + i = "." + n, + o = e.fn[t], + a = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0 }, + l = { + interval: "(number|boolean)", + keyboard: "boolean", + slide: "(boolean|string)", + pause: "(string|boolean)", + wrap: "boolean", + }, + h = { NEXT: "next", PREV: "prev", LEFT: "left", RIGHT: "right" }, + c = { + SLIDE: "slide" + i, + SLID: "slid" + i, + KEYDOWN: "keydown" + i, + MOUSEENTER: "mouseenter" + i, + MOUSELEAVE: "mouseleave" + i, + TOUCHEND: "touchend" + i, + LOAD_DATA_API: "load.bs.carousel.data-api", + CLICK_DATA_API: "click.bs.carousel.data-api", + }, + u = { + CAROUSEL: "carousel", + ACTIVE: "active", + SLIDE: "slide", + RIGHT: "carousel-item-right", + LEFT: "carousel-item-left", + NEXT: "carousel-item-next", + PREV: "carousel-item-prev", + ITEM: "carousel-item", + }, + d = { + ACTIVE: ".active", + ACTIVE_ITEM: ".active.carousel-item", + ITEM: ".carousel-item", + NEXT_PREV: ".carousel-item-next, .carousel-item-prev", + INDICATORS: ".carousel-indicators", + DATA_SLIDE: "[data-slide], [data-slide-to]", + DATA_RIDE: "[data-ride=\"carousel\"]", + }, + f = function() { + function o(t, n) { + this._items = null, + this._interval = null, + this._activeElement = null, + this._isPaused = !1, + this._isSliding = !1, + this.touchTimeout = null, + this._config = this._getConfig(n), + this._element = e(t)[0], + this._indicatorsElement = e(this._element).find(d.INDICATORS)[0], + this._addEventListeners(); + } + var f = o.prototype; + return f.next = function() { + this._isSliding || this._slide(h.NEXT); + }, + f.nextWhenVisible = function() { + !document.hidden && e(this._element).is(":visible") && "hidden" !== e(this._element).css("visibility") + && this.next(); + }, + f.prev = function() { + this._isSliding || this._slide(h.PREV); + }, + f.pause = function(t) { + t || (this._isPaused = !0), + e(this._element).find(d.NEXT_PREV)[0] && s.supportsTransitionEnd() + && (s.triggerTransitionEnd(this._element), this.cycle(!0)), + clearInterval(this._interval), + this._interval = null; + }, + f.cycle = function(t) { + t || (this._isPaused = !1), + this._interval && (clearInterval(this._interval), this._interval = null), + this._config.interval && !this._isPaused + && (this._interval = setInterval( + (document.visibilityState ? this.nextWhenVisible : this.next).bind(this), + this._config.interval, + )); + }, + f.to = function(t) { + var n = this; + this._activeElement = e(this._element).find(d.ACTIVE_ITEM)[0]; + var i = this._getItemIndex(this._activeElement); + if (!(t > this._items.length - 1 || t < 0)) { + if (this._isSliding) {e(this._element).one(c.SLID, function() { + return n.to(t); + });} else { + if (i === t) return this.pause(), void this.cycle(); + var s = t > i ? h.NEXT : h.PREV; + this._slide(s, this._items[t]); + } + } + }, + f.dispose = function() { + e(this._element).off(i), + e.removeData(this._element, n), + this._items = null, + this._config = null, + this._element = null, + this._interval = null, + this._isPaused = null, + this._isSliding = null, + this._activeElement = null, + this._indicatorsElement = null; + }, + f._getConfig = function(n) { + return n = e.extend({}, a, n), s.typeCheckConfig(t, n, l), n; + }, + f._addEventListeners = function() { + var t = this; + this._config.keyboard && e(this._element).on(c.KEYDOWN, function(e) { + return t._keydown(e); + }), + "hover" === this._config.pause && (e(this._element).on(c.MOUSEENTER, function(e) { + return t.pause(e); + }).on(c.MOUSELEAVE, function(e) { + return t.cycle(e); + }), + "ontouchstart" in document.documentElement && e(this._element).on(c.TOUCHEND, function() { + t.pause(), + t.touchTimeout && clearTimeout(t.touchTimeout), + t.touchTimeout = setTimeout(function(e) { + return t.cycle(e); + }, 500 + t._config.interval); + })); + }, + f._keydown = function(t) { + if (!/input|textarea/i.test(t.target.tagName)) { + switch (t.which) { + case 37: + t.preventDefault(), this.prev(); + break; + case 39: + t.preventDefault(), this.next(); + break; + default: + return; + } + } + }, + f._getItemIndex = function(t) { + return this._items = e.makeArray(e(t).parent().find(d.ITEM)), this._items.indexOf(t); + }, + f._getItemByDirection = function(t, e) { + var n = t === h.NEXT, i = t === h.PREV, s = this._getItemIndex(e), r = this._items.length - 1; + if ((i && 0 === s || n && s === r) && !this._config.wrap) return e; + var o = (s + (t === h.PREV ? -1 : 1)) % this._items.length; + return -1 === o ? this._items[this._items.length - 1] : this._items[o]; + }, + f._triggerSlideEvent = function(t, n) { + var i = this._getItemIndex(t), + s = this._getItemIndex(e(this._element).find(d.ACTIVE_ITEM)[0]), + r = e.Event(c.SLIDE, { relatedTarget: t, direction: n, from: s, to: i }); + return e(this._element).trigger(r), r; + }, + f._setActiveIndicatorElement = function(t) { + if (this._indicatorsElement) { + e(this._indicatorsElement).find(d.ACTIVE).removeClass(u.ACTIVE); + var n = this._indicatorsElement.children[this._getItemIndex(t)]; + n && e(n).addClass(u.ACTIVE); + } + }, + f._slide = function(t, n) { + var i, + r, + o, + a = this, + l = e(this._element).find(d.ACTIVE_ITEM)[0], + f = this._getItemIndex(l), + _ = n || l && this._getItemByDirection(t, l), + g = this._getItemIndex(_), + m = Boolean(this._interval); + if ( + t === h.NEXT ? (i = u.LEFT, r = u.NEXT, o = h.LEFT) : (i = u.RIGHT, r = u.PREV, o = h.RIGHT), + _ && e(_).hasClass(u.ACTIVE) + ) this._isSliding = !1; + else if (!this._triggerSlideEvent(_, o).isDefaultPrevented() && l && _) { + this._isSliding = !0, m && this.pause(), this._setActiveIndicatorElement(_); + var p = e.Event(c.SLID, { relatedTarget: _, direction: o, from: f, to: g }); + s.supportsTransitionEnd() && e(this._element).hasClass(u.SLIDE) + ? (e(_).addClass(r), + s.reflow(_), + e(l).addClass(i), + e(_).addClass(i), + e(l).one(s.TRANSITION_END, function() { + e(_).removeClass(i + " " + r).addClass(u.ACTIVE), + e(l).removeClass(u.ACTIVE + " " + r + " " + i), + a._isSliding = !1, + setTimeout(function() { + return e(a._element).trigger(p); + }, 0); + }).emulateTransitionEnd(600)) + : (e(l).removeClass(u.ACTIVE), + e(_).addClass(u.ACTIVE), + this._isSliding = !1, + e(this._element).trigger(p)), m && this.cycle(); + } + }, + o._jQueryInterface = function(t) { + return this.each(function() { + var i = e(this).data(n), s = e.extend({}, a, e(this).data()); + "object" == typeof t && e.extend(s, t); + var r = "string" == typeof t ? t : s.slide; + if (i || (i = new o(this, s), e(this).data(n, i)), "number" == typeof t) i.to(t); + else if ("string" == typeof r) { + if ("undefined" == typeof i[r]) throw new Error("No method named \"" + r + "\""); + i[r](); + } else s.interval && (i.pause(), i.cycle()); + }); + }, + o._dataApiClickHandler = function(t) { + var i = s.getSelectorFromElement(this); + if (i) { + var r = e(i)[0]; + if (r && e(r).hasClass(u.CAROUSEL)) { + var a = e.extend({}, e(r).data(), e(this).data()), l = this.getAttribute("data-slide-to"); + l && (a.interval = !1), o._jQueryInterface.call(e(r), a), l && e(r).data(n).to(l), t.preventDefault(); + } + } + }, + r(o, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }, { + key: "Default", + get: function() { + return a; + }, + }]), + o; + }(); + return e(document).on(c.CLICK_DATA_API, d.DATA_SLIDE, f._dataApiClickHandler), + e(window).on(c.LOAD_DATA_API, function() { + e(d.DATA_RIDE).each(function() { + var t = e(this); + f._jQueryInterface.call(t, t.data()); + }); + }), + e.fn[t] = f._jQueryInterface, + e.fn[t].Constructor = f, + e.fn[t].noConflict = function() { + return e.fn[t] = o, f._jQueryInterface; + }, + f; + }(), + c = function() { + var t = "collapse", + n = "bs.collapse", + i = e.fn[t], + o = { toggle: !0, parent: "" }, + a = { toggle: "boolean", parent: "(string|element)" }, + l = { + SHOW: "show.bs.collapse", + SHOWN: "shown.bs.collapse", + HIDE: "hide.bs.collapse", + HIDDEN: "hidden.bs.collapse", + CLICK_DATA_API: "click.bs.collapse.data-api", + }, + h = { SHOW: "show", COLLAPSE: "collapse", COLLAPSING: "collapsing", COLLAPSED: "collapsed" }, + c = { WIDTH: "width", HEIGHT: "height" }, + u = { ACTIVES: ".show, .collapsing", DATA_TOGGLE: "[data-toggle=\"collapse\"]" }, + d = function() { + function i(t, n) { + this._isTransitioning = !1, + this._element = t, + this._config = this._getConfig(n), + this._triggerArray = e.makeArray( + e( + "[data-toggle=\"collapse\"][href=\"#" + t.id + "\"],[data-toggle=\"collapse\"][data-target=\"#" + t.id + + "\"]", + ), + ); + for (var i = e(u.DATA_TOGGLE), r = 0; r < i.length; r++) { + var o = i[r], a = s.getSelectorFromElement(o); + null !== a && e(a).filter(t).length > 0 && this._triggerArray.push(o); + } + this._parent = this._config.parent ? this._getParent() : null, + this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), + this._config.toggle && this.toggle(); + } + var d = i.prototype; + return d.toggle = function() { + e(this._element).hasClass(h.SHOW) ? this.hide() : this.show(); + }, + d.show = function() { + var t = this; + if (!this._isTransitioning && !e(this._element).hasClass(h.SHOW)) { + var r, o; + if ( + this._parent + && ((r = e.makeArray(e(this._parent).children().children(u.ACTIVES))).length || (r = null)), + !(r && (o = e(r).data(n)) && o._isTransitioning) + ) { + var a = e.Event(l.SHOW); + if (e(this._element).trigger(a), !a.isDefaultPrevented()) { + r && (i._jQueryInterface.call(e(r), "hide"), o || e(r).data(n, null)); + var c = this._getDimension(); + e(this._element).removeClass(h.COLLAPSE).addClass(h.COLLAPSING), + this._element.style[c] = 0, + this._triggerArray.length + && e(this._triggerArray).removeClass(h.COLLAPSED).attr("aria-expanded", !0), + this.setTransitioning(!0); + var d = function() { + e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).addClass(h.SHOW), + t._element.style[c] = "", + t.setTransitioning(!1), + e(t._element).trigger(l.SHOWN); + }; + if (s.supportsTransitionEnd()) { + var f = "scroll" + (c[0].toUpperCase() + c.slice(1)); + e(this._element).one(s.TRANSITION_END, d).emulateTransitionEnd(600), + this._element.style[c] = this._element[f] + "px"; + } else d(); + } + } + } + }, + d.hide = function() { + var t = this; + if (!this._isTransitioning && e(this._element).hasClass(h.SHOW)) { + var n = e.Event(l.HIDE); + if (e(this._element).trigger(n), !n.isDefaultPrevented()) { + var i = this._getDimension(); + if ( + this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", + s.reflow(this._element), + e(this._element).addClass(h.COLLAPSING).removeClass(h.COLLAPSE).removeClass(h.SHOW), + this._triggerArray.length + ) { + for (var r = 0; r < this._triggerArray.length; r++) { + var o = this._triggerArray[r], a = s.getSelectorFromElement(o); + null !== a && (e(a).hasClass(h.SHOW) || e(o).addClass(h.COLLAPSED).attr("aria-expanded", !1)); + } + } + this.setTransitioning(!0); + var c = function() { + t.setTransitioning(!1), + e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).trigger(l.HIDDEN); + }; + this._element.style[i] = "", + s.supportsTransitionEnd() + ? e(this._element).one(s.TRANSITION_END, c).emulateTransitionEnd(600) + : c(); + } + } + }, + d.setTransitioning = function(t) { + this._isTransitioning = t; + }, + d.dispose = function() { + e.removeData(this._element, n), + this._config = null, + this._parent = null, + this._element = null, + this._triggerArray = null, + this._isTransitioning = null; + }, + d._getConfig = function(n) { + return n = e.extend({}, o, n), n.toggle = Boolean(n.toggle), s.typeCheckConfig(t, n, a), n; + }, + d._getDimension = function() { + return e(this._element).hasClass(c.WIDTH) ? c.WIDTH : c.HEIGHT; + }, + d._getParent = function() { + var t = this, n = null; + s.isElement(this._config.parent) + ? (n = this._config.parent, + "undefined" != typeof this._config.parent.jquery && (n = this._config.parent[0])) + : n = e(this._config.parent)[0]; + var r = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]"; + return e(n).find(r).each(function(e, n) { + t._addAriaAndCollapsedClass(i._getTargetFromElement(n), [n]); + }), + n; + }, + d._addAriaAndCollapsedClass = function(t, n) { + if (t) { + var i = e(t).hasClass(h.SHOW); + n.length && e(n).toggleClass(h.COLLAPSED, !i).attr("aria-expanded", i); + } + }, + i._getTargetFromElement = function(t) { + var n = s.getSelectorFromElement(t); + return n ? e(n)[0] : null; + }, + i._jQueryInterface = function(t) { + return this.each(function() { + var s = e(this), r = s.data(n), a = e.extend({}, o, s.data(), "object" == typeof t && t); + if ( + !r && a.toggle && /show|hide/.test(t) && (a.toggle = !1), + r || (r = new i(this, a), s.data(n, r)), + "string" == typeof t + ) { + if ("undefined" == typeof r[t]) throw new Error("No method named \"" + t + "\""); + r[t](); + } + }); + }, + r(i, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }, { + key: "Default", + get: function() { + return o; + }, + }]), + i; + }(); + return e(document).on(l.CLICK_DATA_API, u.DATA_TOGGLE, function(t) { + "A" === t.currentTarget.tagName && t.preventDefault(); + var i = e(this), r = s.getSelectorFromElement(this); + e(r).each(function() { + var t = e(this), s = t.data(n) ? "toggle" : i.data(); + d._jQueryInterface.call(t, s); + }); + }), + e.fn[t] = d._jQueryInterface, + e.fn[t].Constructor = d, + e.fn[t].noConflict = function() { + return e.fn[t] = i, d._jQueryInterface; + }, + d; + }(), + u = function() { + if ("undefined" == typeof n) throw new Error("Bootstrap dropdown require Popper.js (https://popper.js.org)"); + var t = "dropdown", + i = "bs.dropdown", + o = "." + i, + a = e.fn[t], + l = new RegExp("38|40|27"), + h = { + HIDE: "hide" + o, + HIDDEN: "hidden" + o, + SHOW: "show" + o, + SHOWN: "shown" + o, + CLICK: "click" + o, + CLICK_DATA_API: "click.bs.dropdown.data-api", + KEYDOWN_DATA_API: "keydown.bs.dropdown.data-api", + KEYUP_DATA_API: "keyup.bs.dropdown.data-api", + }, + c = { + DISABLED: "disabled", + SHOW: "show", + DROPUP: "dropup", + MENURIGHT: "dropdown-menu-right", + MENULEFT: "dropdown-menu-left", + }, + u = { + DATA_TOGGLE: "[data-toggle=\"dropdown\"]", + FORM_CHILD: ".dropdown form", + MENU: ".dropdown-menu", + NAVBAR_NAV: ".navbar-nav", + VISIBLE_ITEMS: ".dropdown-menu .dropdown-item:not(.disabled)", + }, + d = { TOP: "top-start", TOPEND: "top-end", BOTTOM: "bottom-start", BOTTOMEND: "bottom-end" }, + f = { offset: 0, flip: !0 }, + _ = { offset: "(number|string|function)", flip: "boolean" }, + g = function() { + function a(t, e) { + this._element = t, + this._popper = null, + this._config = this._getConfig(e), + this._menu = this._getMenuElement(), + this._inNavbar = this._detectNavbar(), + this._addEventListeners(); + } + var g = a.prototype; + return g.toggle = function() { + if (!this._element.disabled && !e(this._element).hasClass(c.DISABLED)) { + var t = a._getParentFromElement(this._element), i = e(this._menu).hasClass(c.SHOW); + if (a._clearMenus(), !i) { + var s = { relatedTarget: this._element }, r = e.Event(h.SHOW, s); + if (e(t).trigger(r), !r.isDefaultPrevented()) { + var o = this._element; + e(t).hasClass(c.DROPUP) && (e(this._menu).hasClass(c.MENULEFT) || e(this._menu).hasClass(c.MENURIGHT)) + && (o = t), + this._popper = new n(o, this._menu, this._getPopperConfig()), + "ontouchstart" in document.documentElement && !e(t).closest(u.NAVBAR_NAV).length + && e("body").children().on("mouseover", null, e.noop), + this._element.focus(), + this._element.setAttribute("aria-expanded", !0), + e(this._menu).toggleClass(c.SHOW), + e(t).toggleClass(c.SHOW).trigger(e.Event(h.SHOWN, s)); + } + } + } + }, + g.dispose = function() { + e.removeData(this._element, i), + e(this._element).off(o), + this._element = null, + this._menu = null, + null !== this._popper && this._popper.destroy(), + this._popper = null; + }, + g.update = function() { + this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate(); + }, + g._addEventListeners = function() { + var t = this; + e(this._element).on(h.CLICK, function(e) { + e.preventDefault(), e.stopPropagation(), t.toggle(); + }); + }, + g._getConfig = function(n) { + return n = e.extend({}, this.constructor.Default, e(this._element).data(), n), + s.typeCheckConfig(t, n, this.constructor.DefaultType), + n; + }, + g._getMenuElement = function() { + if (!this._menu) { + var t = a._getParentFromElement(this._element); + this._menu = e(t).find(u.MENU)[0]; + } + return this._menu; + }, + g._getPlacement = function() { + var t = e(this._element).parent(), n = d.BOTTOM; + return t.hasClass(c.DROPUP) + ? (n = d.TOP, e(this._menu).hasClass(c.MENURIGHT) && (n = d.TOPEND)) + : e(this._menu).hasClass(c.MENURIGHT) && (n = d.BOTTOMEND), + n; + }, + g._detectNavbar = function() { + return e(this._element).closest(".navbar").length > 0; + }, + g._getPopperConfig = function() { + var t = this, n = {}; + "function" == typeof this._config.offset + ? n.fn = function(n) { + return n.offsets = e.extend({}, n.offsets, t._config.offset(n.offsets) || {}), n; + } + : n.offset = this._config.offset; + var i = { + placement: this._getPlacement(), + modifiers: { offset: n, flip: { enabled: this._config.flip } }, + }; + return this._inNavbar && (i.modifiers.applyStyle = { enabled: !this._inNavbar }), i; + }, + a._jQueryInterface = function(t) { + return this.each(function() { + var n = e(this).data(i), s = "object" == typeof t ? t : null; + if (n || (n = new a(this, s), e(this).data(i, n)), "string" == typeof t) { + if ("undefined" == typeof n[t]) throw new Error("No method named \"" + t + "\""); + n[t](); + } + }); + }, + a._clearMenus = function(t) { + if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which)) { + for (var n = e.makeArray(e(u.DATA_TOGGLE)), s = 0; s < n.length; s++) { + var r = a._getParentFromElement(n[s]), o = e(n[s]).data(i), l = { relatedTarget: n[s] }; + if (o) { + var d = o._menu; + if ( + e(r).hasClass(c.SHOW) + && !(t + && ("click" === t.type && /input|textarea/i.test(t.target.tagName) + || "keyup" === t.type && 9 === t.which) + && e.contains(r, t.target)) + ) { + var f = e.Event(h.HIDE, l); + e(r).trigger(f), + f.isDefaultPrevented() + || ("ontouchstart" in document.documentElement + && e("body").children().off("mouseover", null, e.noop), + n[s].setAttribute("aria-expanded", "false"), + e(d).removeClass(c.SHOW), + e(r).removeClass(c.SHOW).trigger(e.Event(h.HIDDEN, l))); + } + } + } + } + }, + a._getParentFromElement = function(t) { + var n, i = s.getSelectorFromElement(t); + return i && (n = e(i)[0]), n || t.parentNode; + }, + a._dataApiKeydownHandler = function(t) { + if ( + !(!l.test(t.which) || /button/i.test(t.target.tagName) && 32 === t.which + || /input|textarea/i.test(t.target.tagName) + || (t.preventDefault(), t.stopPropagation(), this.disabled || e(this).hasClass(c.DISABLED))) + ) { + var n = a._getParentFromElement(this), i = e(n).hasClass(c.SHOW); + if ((i || 27 === t.which && 32 === t.which) && (!i || 27 !== t.which && 32 !== t.which)) { + var s = e(n).find(u.VISIBLE_ITEMS).get(); + if (s.length) { + var r = s.indexOf(t.target); + 38 === t.which && r > 0 && r--, + 40 === t.which && r < s.length - 1 && r++, + r < 0 && (r = 0), + s[r].focus(); + } + } else { + if (27 === t.which) { + var o = e(n).find(u.DATA_TOGGLE)[0]; + e(o).trigger("focus"); + } + e(this).trigger("click"); + } + } + }, + r(a, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }, { + key: "Default", + get: function() { + return f; + }, + }, { + key: "DefaultType", + get: function() { + return _; + }, + }]), + a; + }(); + return e(document).on(h.KEYDOWN_DATA_API, u.DATA_TOGGLE, g._dataApiKeydownHandler).on( + h.KEYDOWN_DATA_API, + u.MENU, + g._dataApiKeydownHandler, + ).on(h.CLICK_DATA_API + " " + h.KEYUP_DATA_API, g._clearMenus).on(h.CLICK_DATA_API, u.DATA_TOGGLE, function(t) { + t.preventDefault(), t.stopPropagation(), g._jQueryInterface.call(e(this), "toggle"); + }).on(h.CLICK_DATA_API, u.FORM_CHILD, function(t) { + t.stopPropagation(); + }), + e.fn[t] = g._jQueryInterface, + e.fn[t].Constructor = g, + e.fn[t].noConflict = function() { + return e.fn[t] = a, g._jQueryInterface; + }, + g; + }(), + d = function() { + var t = "modal", + n = ".bs.modal", + i = e.fn[t], + o = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }, + a = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean" }, + l = { + HIDE: "hide.bs.modal", + HIDDEN: "hidden.bs.modal", + SHOW: "show.bs.modal", + SHOWN: "shown.bs.modal", + FOCUSIN: "focusin.bs.modal", + RESIZE: "resize.bs.modal", + CLICK_DISMISS: "click.dismiss.bs.modal", + KEYDOWN_DISMISS: "keydown.dismiss.bs.modal", + MOUSEUP_DISMISS: "mouseup.dismiss.bs.modal", + MOUSEDOWN_DISMISS: "mousedown.dismiss.bs.modal", + CLICK_DATA_API: "click.bs.modal.data-api", + }, + h = { + SCROLLBAR_MEASURER: "modal-scrollbar-measure", + BACKDROP: "modal-backdrop", + OPEN: "modal-open", + FADE: "fade", + SHOW: "show", + }, + c = { + DIALOG: ".modal-dialog", + DATA_TOGGLE: "[data-toggle=\"modal\"]", + DATA_DISMISS: "[data-dismiss=\"modal\"]", + FIXED_CONTENT: ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", + STICKY_CONTENT: ".sticky-top", + NAVBAR_TOGGLER: ".navbar-toggler", + }, + u = function() { + function i(t, n) { + this._config = this._getConfig(n), + this._element = t, + this._dialog = e(t).find(c.DIALOG)[0], + this._backdrop = null, + this._isShown = !1, + this._isBodyOverflowing = !1, + this._ignoreBackdropClick = !1, + this._originalBodyPadding = 0, + this._scrollbarWidth = 0; + } + var u = i.prototype; + return u.toggle = function(t) { + return this._isShown ? this.hide() : this.show(t); + }, + u.show = function(t) { + var n = this; + if (!this._isTransitioning && !this._isShown) { + s.supportsTransitionEnd() && e(this._element).hasClass(h.FADE) && (this._isTransitioning = !0); + var i = e.Event(l.SHOW, { relatedTarget: t }); + e(this._element).trigger(i), + this._isShown || i.isDefaultPrevented() + || (this._isShown = !0, + this._checkScrollbar(), + this._setScrollbar(), + this._adjustDialog(), + e(document.body).addClass(h.OPEN), + this._setEscapeEvent(), + this._setResizeEvent(), + e(this._element).on(l.CLICK_DISMISS, c.DATA_DISMISS, function(t) { + return n.hide(t); + }), + e(this._dialog).on(l.MOUSEDOWN_DISMISS, function() { + e(n._element).one(l.MOUSEUP_DISMISS, function(t) { + e(t.target).is(n._element) && (n._ignoreBackdropClick = !0); + }); + }), + this._showBackdrop(function() { + return n._showElement(t); + })); + } + }, + u.hide = function(t) { + var n = this; + if (t && t.preventDefault(), !this._isTransitioning && this._isShown) { + var i = e.Event(l.HIDE); + if (e(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) { + this._isShown = !1; + var r = s.supportsTransitionEnd() && e(this._element).hasClass(h.FADE); + r && (this._isTransitioning = !0), + this._setEscapeEvent(), + this._setResizeEvent(), + e(document).off(l.FOCUSIN), + e(this._element).removeClass(h.SHOW), + e(this._element).off(l.CLICK_DISMISS), + e(this._dialog).off(l.MOUSEDOWN_DISMISS), + r + ? e(this._element).one(s.TRANSITION_END, function(t) { + return n._hideModal(t); + }).emulateTransitionEnd(300) + : this._hideModal(); + } + } + }, + u.dispose = function() { + e.removeData(this._element, "bs.modal"), + e(window, document, this._element, this._backdrop).off(n), + this._config = null, + this._element = null, + this._dialog = null, + this._backdrop = null, + this._isShown = null, + this._isBodyOverflowing = null, + this._ignoreBackdropClick = null, + this._scrollbarWidth = null; + }, + u.handleUpdate = function() { + this._adjustDialog(); + }, + u._getConfig = function(n) { + return n = e.extend({}, o, n), s.typeCheckConfig(t, n, a), n; + }, + u._showElement = function(t) { + var n = this, i = s.supportsTransitionEnd() && e(this._element).hasClass(h.FADE); + this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE + || document.body.appendChild(this._element), + this._element.style.display = "block", + this._element.removeAttribute("aria-hidden"), + this._element.scrollTop = 0, + i && s.reflow(this._element), + e(this._element).addClass(h.SHOW), + this._config.focus && this._enforceFocus(); + var r = e.Event(l.SHOWN, { relatedTarget: t }), + o = function() { + n._config.focus && n._element.focus(), n._isTransitioning = !1, e(n._element).trigger(r); + }; + i ? e(this._dialog).one(s.TRANSITION_END, o).emulateTransitionEnd(300) : o(); + }, + u._enforceFocus = function() { + var t = this; + e(document).off(l.FOCUSIN).on(l.FOCUSIN, function(n) { + document === n.target || t._element === n.target || e(t._element).has(n.target).length + || t._element.focus(); + }); + }, + u._setEscapeEvent = function() { + var t = this; + this._isShown && this._config.keyboard + ? e(this._element).on(l.KEYDOWN_DISMISS, function(e) { + 27 === e.which && (e.preventDefault(), t.hide()); + }) + : this._isShown || e(this._element).off(l.KEYDOWN_DISMISS); + }, + u._setResizeEvent = function() { + var t = this; + this._isShown + ? e(window).on(l.RESIZE, function(e) { + return t.handleUpdate(e); + }) + : e(window).off(l.RESIZE); + }, + u._hideModal = function() { + var t = this; + this._element.style.display = "none", + this._element.setAttribute("aria-hidden", !0), + this._isTransitioning = !1, + this._showBackdrop(function() { + e(document.body).removeClass(h.OPEN), + t._resetAdjustments(), + t._resetScrollbar(), + e(t._element).trigger(l.HIDDEN); + }); + }, + u._removeBackdrop = function() { + this._backdrop && (e(this._backdrop).remove(), this._backdrop = null); + }, + u._showBackdrop = function(t) { + var n = this, i = e(this._element).hasClass(h.FADE) ? h.FADE : ""; + if (this._isShown && this._config.backdrop) { + var r = s.supportsTransitionEnd() && i; + if ( + this._backdrop = document.createElement("div"), + this._backdrop.className = h.BACKDROP, + i && e(this._backdrop).addClass(i), + e(this._backdrop).appendTo(document.body), + e(this._element).on(l.CLICK_DISMISS, function(t) { + n._ignoreBackdropClick + ? n._ignoreBackdropClick = !1 + : t.target === t.currentTarget + && ("static" === n._config.backdrop ? n._element.focus() : n.hide()); + }), + r && s.reflow(this._backdrop), + e(this._backdrop).addClass(h.SHOW), + !t + ) return; + if (!r) return void t(); + e(this._backdrop).one(s.TRANSITION_END, t).emulateTransitionEnd(150); + } else if (!this._isShown && this._backdrop) { + e(this._backdrop).removeClass(h.SHOW); + var o = function() { + n._removeBackdrop(), t && t(); + }; + s.supportsTransitionEnd() && e(this._element).hasClass(h.FADE) + ? e(this._backdrop).one(s.TRANSITION_END, o).emulateTransitionEnd(150) + : o(); + } else t && t(); + }, + u._adjustDialog = function() { + var t = this._element.scrollHeight > document.documentElement.clientHeight; + !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), + this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px"); + }, + u._resetAdjustments = function() { + this._element.style.paddingLeft = "", this._element.style.paddingRight = ""; + }, + u._checkScrollbar = function() { + var t = document.body.getBoundingClientRect(); + this._isBodyOverflowing = t.left + t.right < window.innerWidth, + this._scrollbarWidth = this._getScrollbarWidth(); + }, + u._setScrollbar = function() { + var t = this; + if (this._isBodyOverflowing) { + e(c.FIXED_CONTENT).each(function(n, i) { + var s = e(i)[0].style.paddingRight, r = e(i).css("padding-right"); + e(i).data("padding-right", s).css("padding-right", parseFloat(r) + t._scrollbarWidth + "px"); + }), + e(c.STICKY_CONTENT).each(function(n, i) { + var s = e(i)[0].style.marginRight, r = e(i).css("margin-right"); + e(i).data("margin-right", s).css("margin-right", parseFloat(r) - t._scrollbarWidth + "px"); + }), + e(c.NAVBAR_TOGGLER).each(function(n, i) { + var s = e(i)[0].style.marginRight, r = e(i).css("margin-right"); + e(i).data("margin-right", s).css("margin-right", parseFloat(r) + t._scrollbarWidth + "px"); + }); + var n = document.body.style.paddingRight, i = e("body").css("padding-right"); + e("body").data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px"); + } + }, + u._resetScrollbar = function() { + e(c.FIXED_CONTENT).each(function(t, n) { + var i = e(n).data("padding-right"); + "undefined" != typeof i && e(n).css("padding-right", i).removeData("padding-right"); + }), + e(c.STICKY_CONTENT + ", " + c.NAVBAR_TOGGLER).each(function(t, n) { + var i = e(n).data("margin-right"); + "undefined" != typeof i && e(n).css("margin-right", i).removeData("margin-right"); + }); + var t = e("body").data("padding-right"); + "undefined" != typeof t && e("body").css("padding-right", t).removeData("padding-right"); + }, + u._getScrollbarWidth = function() { + var t = document.createElement("div"); + t.className = h.SCROLLBAR_MEASURER, document.body.appendChild(t); + var e = t.getBoundingClientRect().width - t.clientWidth; + return document.body.removeChild(t), e; + }, + i._jQueryInterface = function(t, n) { + return this.each(function() { + var s = e(this).data("bs.modal"), + r = e.extend({}, i.Default, e(this).data(), "object" == typeof t && t); + if (s || (s = new i(this, r), e(this).data("bs.modal", s)), "string" == typeof t) { + if ("undefined" == typeof s[t]) throw new Error("No method named \"" + t + "\""); + s[t](n); + } else r.show && s.show(n); + }); + }, + r(i, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }, { + key: "Default", + get: function() { + return o; + }, + }]), + i; + }(); + return e(document).on(l.CLICK_DATA_API, c.DATA_TOGGLE, function(t) { + var n, i = this, r = s.getSelectorFromElement(this); + r && (n = e(r)[0]); + var o = e(n).data("bs.modal") ? "toggle" : e.extend({}, e(n).data(), e(this).data()); + "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); + var a = e(n).one(l.SHOW, function(t) { + t.isDefaultPrevented() || a.one(l.HIDDEN, function() { + e(i).is(":visible") && i.focus(); + }); + }); + u._jQueryInterface.call(e(n), o, this); + }), + e.fn[t] = u._jQueryInterface, + e.fn[t].Constructor = u, + e.fn[t].noConflict = function() { + return e.fn[t] = i, u._jQueryInterface; + }, + u; + }(), + f = function() { + if ("undefined" == typeof n) throw new Error("Bootstrap tooltips require Popper.js (https://popper.js.org)"); + var t = "tooltip", + i = ".bs.tooltip", + o = e.fn[t], + a = new RegExp("(^|\\s)bs-tooltip\\S+", "g"), + l = { + animation: "boolean", + template: "string", + title: "(string|element|function)", + trigger: "string", + delay: "(number|object)", + html: "boolean", + selector: "(string|boolean)", + placement: "(string|function)", + offset: "(number|string)", + container: "(string|element|boolean)", + fallbackPlacement: "(string|array)", + }, + h = { AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left" }, + c = { + animation: !0, + template: + "
", + trigger: "hover focus", + title: "", + delay: 0, + html: !1, + selector: !1, + placement: "top", + offset: 0, + container: !1, + fallbackPlacement: "flip", + }, + u = { SHOW: "show", OUT: "out" }, + d = { + HIDE: "hide" + i, + HIDDEN: "hidden" + i, + SHOW: "show" + i, + SHOWN: "shown" + i, + INSERTED: "inserted" + i, + CLICK: "click" + i, + FOCUSIN: "focusin" + i, + FOCUSOUT: "focusout" + i, + MOUSEENTER: "mouseenter" + i, + MOUSELEAVE: "mouseleave" + i, + }, + f = { FADE: "fade", SHOW: "show" }, + _ = { TOOLTIP: ".tooltip", TOOLTIP_INNER: ".tooltip-inner", ARROW: ".arrow" }, + g = { HOVER: "hover", FOCUS: "focus", CLICK: "click", MANUAL: "manual" }, + m = function() { + function o(t, e) { + this._isEnabled = !0, + this._timeout = 0, + this._hoverState = "", + this._activeTrigger = {}, + this._popper = null, + this.element = t, + this.config = this._getConfig(e), + this.tip = null, + this._setListeners(); + } + var m = o.prototype; + return m.enable = function() { + this._isEnabled = !0; + }, + m.disable = function() { + this._isEnabled = !1; + }, + m.toggleEnabled = function() { + this._isEnabled = !this._isEnabled; + }, + m.toggle = function(t) { + if (this._isEnabled) { + if (t) { + var n = this.constructor.DATA_KEY, i = e(t.currentTarget).data(n); + i + || (i = new this.constructor(t.currentTarget, this._getDelegateConfig()), + e(t.currentTarget).data(n, i)), + i._activeTrigger.click = !i._activeTrigger.click, + i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i); + } else { + if (e(this.getTipElement()).hasClass(f.SHOW)) return void this._leave(null, this); + this._enter(null, this); + } + } + }, + m.dispose = function() { + clearTimeout(this._timeout), + e.removeData(this.element, this.constructor.DATA_KEY), + e(this.element).off(this.constructor.EVENT_KEY), + e(this.element).closest(".modal").off("hide.bs.modal"), + this.tip && e(this.tip).remove(), + this._isEnabled = null, + this._timeout = null, + this._hoverState = null, + this._activeTrigger = null, + null !== this._popper && this._popper.destroy(), + this._popper = null, + this.element = null, + this.config = null, + this.tip = null; + }, + m.show = function() { + var t = this; + if ("none" === e(this.element).css("display")) throw new Error("Please use show on visible elements"); + var i = e.Event(this.constructor.Event.SHOW); + if (this.isWithContent() && this._isEnabled) { + e(this.element).trigger(i); + var r = e.contains(this.element.ownerDocument.documentElement, this.element); + if (i.isDefaultPrevented() || !r) return; + var a = this.getTipElement(), l = s.getUID(this.constructor.NAME); + a.setAttribute("id", l), + this.element.setAttribute("aria-describedby", l), + this.setContent(), + this.config.animation && e(a).addClass(f.FADE); + var h = "function" == typeof this.config.placement + ? this.config.placement.call(this, a, this.element) + : this.config.placement, + c = this._getAttachment(h); + this.addAttachmentClass(c); + var d = !1 === this.config.container ? document.body : e(this.config.container); + e(a).data(this.constructor.DATA_KEY, this), + e.contains(this.element.ownerDocument.documentElement, this.tip) || e(a).appendTo(d), + e(this.element).trigger(this.constructor.Event.INSERTED), + this._popper = new n(this.element, a, { + placement: c, + modifiers: { + offset: { offset: this.config.offset }, + flip: { behavior: this.config.fallbackPlacement }, + arrow: { element: _.ARROW }, + }, + onCreate: function(e) { + e.originalPlacement !== e.placement && t._handlePopperPlacementChange(e); + }, + onUpdate: function(e) { + t._handlePopperPlacementChange(e); + }, + }), + e(a).addClass(f.SHOW), + "ontouchstart" in document.documentElement && e("body").children().on("mouseover", null, e.noop); + var g = function() { + t.config.animation && t._fixTransition(); + var n = t._hoverState; + t._hoverState = null, + e(t.element).trigger(t.constructor.Event.SHOWN), + n === u.OUT && t._leave(null, t); + }; + s.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) + ? e(this.tip).one(s.TRANSITION_END, g).emulateTransitionEnd(o._TRANSITION_DURATION) + : g(); + } + }, + m.hide = function(t) { + var n = this, + i = this.getTipElement(), + r = e.Event(this.constructor.Event.HIDE), + o = function() { + n._hoverState !== u.SHOW && i.parentNode && i.parentNode.removeChild(i), + n._cleanTipClass(), + n.element.removeAttribute("aria-describedby"), + e(n.element).trigger(n.constructor.Event.HIDDEN), + null !== n._popper && n._popper.destroy(), + t && t(); + }; + e(this.element).trigger(r), + r.isDefaultPrevented() + || (e(i).removeClass(f.SHOW), + "ontouchstart" in document.documentElement && e("body").children().off("mouseover", null, e.noop), + this._activeTrigger[g.CLICK] = !1, + this._activeTrigger[g.FOCUS] = !1, + this._activeTrigger[g.HOVER] = !1, + s.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) + ? e(i).one(s.TRANSITION_END, o).emulateTransitionEnd(150) + : o(), + this._hoverState = ""); + }, + m.update = function() { + null !== this._popper && this._popper.scheduleUpdate(); + }, + m.isWithContent = function() { + return Boolean(this.getTitle()); + }, + m.addAttachmentClass = function(t) { + e(this.getTipElement()).addClass("bs-tooltip-" + t); + }, + m.getTipElement = function() { + return this.tip = this.tip || e(this.config.template)[0], this.tip; + }, + m.setContent = function() { + var t = e(this.getTipElement()); + this.setElementContent(t.find(_.TOOLTIP_INNER), this.getTitle()), t.removeClass(f.FADE + " " + f.SHOW); + }, + m.setElementContent = function(t, n) { + var i = this.config.html; + "object" == typeof n && (n.nodeType || n.jquery) + ? i ? e(n).parent().is(t) || t.empty().append(n) : t.text(e(n).text()) + : t[i ? "html" : "text"](n); + }, + m.getTitle = function() { + var t = this.element.getAttribute("data-original-title"); + return t || (t = "function" == typeof this.config.title + ? this.config.title.call(this.element) + : this.config.title), + t; + }, + m._getAttachment = function(t) { + return h[t.toUpperCase()]; + }, + m._setListeners = function() { + var t = this; + this.config.trigger.split(" ").forEach(function(n) { + if ("click" === n) { + e(t.element).on(t.constructor.Event.CLICK, t.config.selector, function(e) { + return t.toggle(e); + }); + } else if (n !== g.MANUAL) { + var i = n === g.HOVER ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN, + s = n === g.HOVER ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT; + e(t.element).on(i, t.config.selector, function(e) { + return t._enter(e); + }).on(s, t.config.selector, function(e) { + return t._leave(e); + }); + } + e(t.element).closest(".modal").on("hide.bs.modal", function() { + return t.hide(); + }); + }), + this.config.selector + ? this.config = e.extend({}, this.config, { trigger: "manual", selector: "" }) + : this._fixTitle(); + }, + m._fixTitle = function() { + var t = typeof this.element.getAttribute("data-original-title"); + (this.element.getAttribute("title") || "string" !== t) + && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), + this.element.setAttribute("title", "")); + }, + m._enter = function(t, n) { + var i = this.constructor.DATA_KEY; + (n = n || e(t.currentTarget).data(i)) + || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(i, n)), + t && (n._activeTrigger["focusin" === t.type ? g.FOCUS : g.HOVER] = !0), + e(n.getTipElement()).hasClass(f.SHOW) || n._hoverState === u.SHOW + ? n._hoverState = u.SHOW + : (clearTimeout(n._timeout), + n._hoverState = u.SHOW, + n.config.delay && n.config.delay.show + ? n._timeout = setTimeout(function() { + n._hoverState === u.SHOW && n.show(); + }, n.config.delay.show) + : n.show()); + }, + m._leave = function(t, n) { + var i = this.constructor.DATA_KEY; + (n = n || e(t.currentTarget).data(i)) + || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(i, n)), + t && (n._activeTrigger["focusout" === t.type ? g.FOCUS : g.HOVER] = !1), + n._isWithActiveTrigger() + || (clearTimeout(n._timeout), + n._hoverState = u.OUT, + n.config.delay && n.config.delay.hide + ? n._timeout = setTimeout(function() { + n._hoverState === u.OUT && n.hide(); + }, n.config.delay.hide) + : n.hide()); + }, + m._isWithActiveTrigger = function() { + for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0; + return !1; + }, + m._getConfig = function(n) { + return "number" == typeof (n = e.extend({}, this.constructor.Default, e(this.element).data(), n)).delay + && (n.delay = { show: n.delay, hide: n.delay }), + "number" == typeof n.title && (n.title = n.title.toString()), + "number" == typeof n.content && (n.content = n.content.toString()), + s.typeCheckConfig(t, n, this.constructor.DefaultType), + n; + }, + m._getDelegateConfig = function() { + var t = {}; + if (this.config) {for (var e in this.config) {this.constructor.Default[e] !== this.config[e] + && (t[e] = this.config[e]);}} + return t; + }, + m._cleanTipClass = function() { + var t = e(this.getTipElement()), n = t.attr("class").match(a); + null !== n && n.length > 0 && t.removeClass(n.join("")); + }, + m._handlePopperPlacementChange = function(t) { + this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)); + }, + m._fixTransition = function() { + var t = this.getTipElement(), n = this.config.animation; + null === t.getAttribute("x-placement") + && (e(t).removeClass(f.FADE), + this.config.animation = !1, + this.hide(), + this.show(), + this.config.animation = n); + }, + o._jQueryInterface = function(t) { + return this.each(function() { + var n = e(this).data("bs.tooltip"), i = "object" == typeof t && t; + if ( + (n || !/dispose|hide/.test(t)) + && (n || (n = new o(this, i), e(this).data("bs.tooltip", n)), "string" == typeof t) + ) { + if ("undefined" == typeof n[t]) throw new Error("No method named \"" + t + "\""); + n[t](); + } + }); + }, + r(o, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }, { + key: "Default", + get: function() { + return c; + }, + }, { + key: "NAME", + get: function() { + return t; + }, + }, { + key: "DATA_KEY", + get: function() { + return "bs.tooltip"; + }, + }, { + key: "Event", + get: function() { + return d; + }, + }, { + key: "EVENT_KEY", + get: function() { + return i; + }, + }, { + key: "DefaultType", + get: function() { + return l; + }, + }]), + o; + }(); + return e.fn[t] = m._jQueryInterface, + e.fn[t].Constructor = m, + e.fn[t].noConflict = function() { + return e.fn[t] = o, m._jQueryInterface; + }, + m; + }(), + _ = function() { + var t = "popover", + n = ".bs.popover", + i = e.fn[t], + s = new RegExp("(^|\\s)bs-popover\\S+", "g"), + a = e.extend({}, f.Default, { + placement: "right", + trigger: "click", + content: "", + template: + "

", + }), + l = e.extend({}, f.DefaultType, { content: "(string|element|function)" }), + h = { FADE: "fade", SHOW: "show" }, + c = { TITLE: ".popover-header", CONTENT: ".popover-body" }, + u = { + HIDE: "hide" + n, + HIDDEN: "hidden" + n, + SHOW: "show" + n, + SHOWN: "shown" + n, + INSERTED: "inserted" + n, + CLICK: "click" + n, + FOCUSIN: "focusin" + n, + FOCUSOUT: "focusout" + n, + MOUSEENTER: "mouseenter" + n, + MOUSELEAVE: "mouseleave" + n, + }, + d = function(i) { + function d() { + return i.apply(this, arguments) || this; + } + o(d, i); + var f = d.prototype; + return f.isWithContent = function() { + return this.getTitle() || this._getContent(); + }, + f.addAttachmentClass = function(t) { + e(this.getTipElement()).addClass("bs-popover-" + t); + }, + f.getTipElement = function() { + return this.tip = this.tip || e(this.config.template)[0], this.tip; + }, + f.setContent = function() { + var t = e(this.getTipElement()); + this.setElementContent(t.find(c.TITLE), this.getTitle()), + this.setElementContent(t.find(c.CONTENT), this._getContent()), + t.removeClass(h.FADE + " " + h.SHOW); + }, + f._getContent = function() { + return this.element.getAttribute("data-content") || ("function" == typeof this.config.content + ? this.config.content.call(this.element) + : this.config.content); + }, + f._cleanTipClass = function() { + var t = e(this.getTipElement()), n = t.attr("class").match(s); + null !== n && n.length > 0 && t.removeClass(n.join("")); + }, + d._jQueryInterface = function(t) { + return this.each(function() { + var n = e(this).data("bs.popover"), i = "object" == typeof t ? t : null; + if ( + (n || !/destroy|hide/.test(t)) + && (n || (n = new d(this, i), e(this).data("bs.popover", n)), "string" == typeof t) + ) { + if ("undefined" == typeof n[t]) throw new Error("No method named \"" + t + "\""); + n[t](); + } + }); + }, + r(d, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }, { + key: "Default", + get: function() { + return a; + }, + }, { + key: "NAME", + get: function() { + return t; + }, + }, { + key: "DATA_KEY", + get: function() { + return "bs.popover"; + }, + }, { + key: "Event", + get: function() { + return u; + }, + }, { + key: "EVENT_KEY", + get: function() { + return n; + }, + }, { + key: "DefaultType", + get: function() { + return l; + }, + }]), + d; + }(f); + return e.fn[t] = d._jQueryInterface, + e.fn[t].Constructor = d, + e.fn[t].noConflict = function() { + return e.fn[t] = i, d._jQueryInterface; + }, + d; + }(), + g = function() { + var t = "scrollspy", + n = e.fn[t], + i = { offset: 10, method: "auto", target: "" }, + o = { offset: "number", method: "string", target: "(string|element)" }, + a = { + ACTIVATE: "activate.bs.scrollspy", + SCROLL: "scroll.bs.scrollspy", + LOAD_DATA_API: "load.bs.scrollspy.data-api", + }, + l = { DROPDOWN_ITEM: "dropdown-item", DROPDOWN_MENU: "dropdown-menu", ACTIVE: "active" }, + h = { + DATA_SPY: "[data-spy=\"scroll\"]", + ACTIVE: ".active", + NAV_LIST_GROUP: ".nav, .list-group", + NAV_LINKS: ".nav-link", + NAV_ITEMS: ".nav-item", + LIST_ITEMS: ".list-group-item", + DROPDOWN: ".dropdown", + DROPDOWN_ITEMS: ".dropdown-item", + DROPDOWN_TOGGLE: ".dropdown-toggle", + }, + c = { OFFSET: "offset", POSITION: "position" }, + u = function() { + function n(t, n) { + var i = this; + this._element = t, + this._scrollElement = "BODY" === t.tagName ? window : t, + this._config = this._getConfig(n), + this._selector = this._config.target + " " + h.NAV_LINKS + "," + this._config.target + " " + h.LIST_ITEMS + + "," + this._config.target + " " + h.DROPDOWN_ITEMS, + this._offsets = [], + this._targets = [], + this._activeTarget = null, + this._scrollHeight = 0, + e(this._scrollElement).on(a.SCROLL, function(t) { + return i._process(t); + }), + this.refresh(), + this._process(); + } + var u = n.prototype; + return u.refresh = function() { + var t = this, + n = this._scrollElement !== this._scrollElement.window ? c.POSITION : c.OFFSET, + i = "auto" === this._config.method ? n : this._config.method, + r = i === c.POSITION ? this._getScrollTop() : 0; + this._offsets = [], + this._targets = [], + this._scrollHeight = this._getScrollHeight(), + e.makeArray(e(this._selector)).map(function(t) { + var n, o = s.getSelectorFromElement(t); + if (o && (n = e(o)[0]), n) { + var a = n.getBoundingClientRect(); + if (a.width || a.height) return [e(n)[i]().top + r, o]; + } + return null; + }).filter(function(t) { + return t; + }).sort(function(t, e) { + return t[0] - e[0]; + }).forEach(function(e) { + t._offsets.push(e[0]), t._targets.push(e[1]); + }); + }, + u.dispose = function() { + e.removeData(this._element, "bs.scrollspy"), + e(this._scrollElement).off(".bs.scrollspy"), + this._element = null, + this._scrollElement = null, + this._config = null, + this._selector = null, + this._offsets = null, + this._targets = null, + this._activeTarget = null, + this._scrollHeight = null; + }, + u._getConfig = function(n) { + if ("string" != typeof (n = e.extend({}, i, n)).target) { + var r = e(n.target).attr("id"); + r || (r = s.getUID(t), e(n.target).attr("id", r)), n.target = "#" + r; + } + return s.typeCheckConfig(t, n, o), n; + }, + u._getScrollTop = function() { + return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; + }, + u._getScrollHeight = function() { + return this._scrollElement.scrollHeight + || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); + }, + u._getOffsetHeight = function() { + return this._scrollElement === window + ? window.innerHeight + : this._scrollElement.getBoundingClientRect().height; + }, + u._process = function() { + var t = this._getScrollTop() + this._config.offset, + e = this._getScrollHeight(), + n = this._config.offset + e - this._getOffsetHeight(); + if (this._scrollHeight !== e && this.refresh(), t >= n) { + var i = this._targets[this._targets.length - 1]; + this._activeTarget !== i && this._activate(i); + } else { + if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) {return this._activeTarget = + null, + void this._clear();} + for (var s = this._offsets.length; s--;) {this._activeTarget !== this._targets[s] + && t >= this._offsets[s] && ("undefined" == typeof this._offsets[s + 1] || t < this._offsets[s + 1]) + && this._activate(this._targets[s]);} + } + }, + u._activate = function(t) { + this._activeTarget = t, this._clear(); + var n = this._selector.split(","); + n = n.map(function(e) { + return e + "[data-target=\"" + t + "\"]," + e + "[href=\"" + t + "\"]"; + }); + var i = e(n.join(",")); + i.hasClass(l.DROPDOWN_ITEM) + ? (i.closest(h.DROPDOWN).find(h.DROPDOWN_TOGGLE).addClass(l.ACTIVE), i.addClass(l.ACTIVE)) + : (i.addClass(l.ACTIVE), + i.parents(h.NAV_LIST_GROUP).prev(h.NAV_LINKS + ", " + h.LIST_ITEMS).addClass(l.ACTIVE), + i.parents(h.NAV_LIST_GROUP).prev(h.NAV_ITEMS).children(h.NAV_LINKS).addClass(l.ACTIVE)), + e(this._scrollElement).trigger(a.ACTIVATE, { relatedTarget: t }); + }, + u._clear = function() { + e(this._selector).filter(h.ACTIVE).removeClass(l.ACTIVE); + }, + n._jQueryInterface = function(t) { + return this.each(function() { + var i = e(this).data("bs.scrollspy"), s = "object" == typeof t && t; + if (i || (i = new n(this, s), e(this).data("bs.scrollspy", i)), "string" == typeof t) { + if ("undefined" == typeof i[t]) throw new Error("No method named \"" + t + "\""); + i[t](); + } + }); + }, + r(n, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }, { + key: "Default", + get: function() { + return i; + }, + }]), + n; + }(); + return e(window).on(a.LOAD_DATA_API, function() { + for (var t = e.makeArray(e(h.DATA_SPY)), n = t.length; n--;) { + var i = e(t[n]); + u._jQueryInterface.call(i, i.data()); + } + }), + e.fn[t] = u._jQueryInterface, + e.fn[t].Constructor = u, + e.fn[t].noConflict = function() { + return e.fn[t] = n, u._jQueryInterface; + }, + u; + }(), + m = function() { + var t = e.fn.tab, + n = { + HIDE: "hide.bs.tab", + HIDDEN: "hidden.bs.tab", + SHOW: "show.bs.tab", + SHOWN: "shown.bs.tab", + CLICK_DATA_API: "click.bs.tab.data-api", + }, + i = { DROPDOWN_MENU: "dropdown-menu", ACTIVE: "active", DISABLED: "disabled", FADE: "fade", SHOW: "show" }, + o = { + DROPDOWN: ".dropdown", + NAV_LIST_GROUP: ".nav, .list-group", + ACTIVE: ".active", + ACTIVE_UL: "> li > .active", + DATA_TOGGLE: "[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]", + DROPDOWN_TOGGLE: ".dropdown-toggle", + DROPDOWN_ACTIVE_CHILD: "> .dropdown-menu .active", + }, + a = function() { + function t(t) { + this._element = t; + } + var a = t.prototype; + return a.show = function() { + var t = this; + if ( + !(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE + && e(this._element).hasClass(i.ACTIVE) || e(this._element).hasClass(i.DISABLED)) + ) { + var r, a, l = e(this._element).closest(o.NAV_LIST_GROUP)[0], h = s.getSelectorFromElement(this._element); + if (l) { + var c = "UL" === l.nodeName ? o.ACTIVE_UL : o.ACTIVE; + a = e.makeArray(e(l).find(c)), a = a[a.length - 1]; + } + var u = e.Event(n.HIDE, { relatedTarget: this._element }), d = e.Event(n.SHOW, { relatedTarget: a }); + if ( + a && e(a).trigger(u), e(this._element).trigger(d), !d.isDefaultPrevented() && !u.isDefaultPrevented() + ) { + h && (r = e(h)[0]), this._activate(this._element, l); + var f = function() { + var i = e.Event(n.HIDDEN, { relatedTarget: t._element }), s = e.Event(n.SHOWN, { relatedTarget: a }); + e(a).trigger(i), e(t._element).trigger(s); + }; + r ? this._activate(r, r.parentNode, f) : f(); + } + } + }, + a.dispose = function() { + e.removeData(this._element, "bs.tab"), this._element = null; + }, + a._activate = function(t, n, r) { + var a, + l = this, + h = (a = "UL" === n.nodeName ? e(n).find(o.ACTIVE_UL) : e(n).children(o.ACTIVE))[0], + c = r && s.supportsTransitionEnd() && h && e(h).hasClass(i.FADE), + u = function() { + return l._transitionComplete(t, h, c, r); + }; + h && c ? e(h).one(s.TRANSITION_END, u).emulateTransitionEnd(150) : u(), h && e(h).removeClass(i.SHOW); + }, + a._transitionComplete = function(t, n, r, a) { + if (n) { + e(n).removeClass(i.ACTIVE); + var l = e(n.parentNode).find(o.DROPDOWN_ACTIVE_CHILD)[0]; + l && e(l).removeClass(i.ACTIVE), + "tab" === n.getAttribute("role") && n.setAttribute("aria-selected", !1); + } + if ( + e(t).addClass(i.ACTIVE), + "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), + r ? (s.reflow(t), e(t).addClass(i.SHOW)) : e(t).removeClass(i.FADE), + t.parentNode && e(t.parentNode).hasClass(i.DROPDOWN_MENU) + ) { + var h = e(t).closest(o.DROPDOWN)[0]; + h && e(h).find(o.DROPDOWN_TOGGLE).addClass(i.ACTIVE), t.setAttribute("aria-expanded", !0); + } + a && a(); + }, + t._jQueryInterface = function(n) { + return this.each(function() { + var i = e(this), s = i.data("bs.tab"); + if (s || (s = new t(this), i.data("bs.tab", s)), "string" == typeof n) { + if ("undefined" == typeof s[n]) throw new Error("No method named \"" + n + "\""); + s[n](); + } + }); + }, + r(t, null, [{ + key: "VERSION", + get: function() { + return "4.0.0-beta.2"; + }, + }]), + t; + }(); + return e(document).on(n.CLICK_DATA_API, o.DATA_TOGGLE, function(t) { + t.preventDefault(), a._jQueryInterface.call(e(this), "show"); + }), + e.fn.tab = a._jQueryInterface, + e.fn.tab.Constructor = a, + e.fn.tab.noConflict = function() { + return e.fn.tab = t, a._jQueryInterface; + }, + a; + }(); + return function() { + if ("undefined" == typeof e) { + throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); + } + var t = e.fn.jquery.split(" ")[0].split("."); + if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || t[0] >= 4) { + throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0"); + } + }(), + t.Util = s, + t.Alert = a, + t.Button = l, + t.Carousel = h, + t.Collapse = c, + t.Dropdown = u, + t.Modal = d, + t.Popover = _, + t.Scrollspy = g, + t.Tab = m, + t.Tooltip = f, + t; +}({}, $, Popper); +// # sourceMappingURL=bootstrap.min.js.map diff --git a/docs/assets/js/contact.js b/docs/assets/js/contact.js index e44c8bba02..8c60841795 100644 --- a/docs/assets/js/contact.js +++ b/docs/assets/js/contact.js @@ -1,31 +1,30 @@ - - -$(function () { +$(function() { "use strict"; - $('#contact-form').validator(); + $("#contact-form").validator(); - $('#contact-form').on('submit', function (e) { - if (!e.isDefaultPrevented()) { - var url = "assets/php/contact.php"; + $("#contact-form").on("submit", function(e) { + if (!e.isDefaultPrevented()) { + var url = "assets/php/contact.php"; - $.ajax({ - type: "POST", - url: url, - data: $(this).serialize(), - success: function (data) - { - var messageAlert = 'alert-' + data.type; - var messageText = data.message; + $.ajax({ + type: "POST", + url: url, + data: $(this).serialize(), + success: function(data) { + var messageAlert = "alert-" + data.type; + var messageText = data.message; - var alertBox = '
' + messageText + '
'; - if (messageAlert && messageText) { - $('#contact-form').find('.messages').html(alertBox); - $('#contact-form')[0].reset(); - } - } - }); - return false; - } - }) + var alertBox = "
" + + messageText + "
"; + if (messageAlert && messageText) { + $("#contact-form").find(".messages").html(alertBox); + $("#contact-form")[0].reset(); + } + }, + }); + return false; + } + }); }); diff --git a/docs/assets/js/custom.js b/docs/assets/js/custom.js index 535ad9d369..9c74e314a5 100644 --- a/docs/assets/js/custom.js +++ b/docs/assets/js/custom.js @@ -1,153 +1,143 @@ -// Custom Scripts for Primal Template // - -jQuery(function($) { - "use strict"; - - - // get the value of the bottom of the #main element by adding the offset of that element plus its height, set it as a variable - var mainbottom = $('#main').offset().top; - - // on scroll, - $(window).on('scroll',function(){ - - // we round here to reduce a little workload - stop = Math.round($(window).scrollTop()); - if (stop > mainbottom) { - $('.navbar').addClass('past-main'); - $('.navbar').addClass('effect-main') - } else { - $('.navbar').removeClass('past-main'); - } - - }); - - - // Collapse navbar on click - - $(document).on('click.nav','.navbar-collapse.in',function(e) { - if( $(e.target).is('a') ) { - $(this).removeClass('in').addClass('collapse'); - } - }); - - /*----------------------------------- - ----------- Scroll To Top ----------- - ------------------------------------*/ - - $(window).scroll(function () { - if ($(this).scrollTop() > 1000) { - $('#back-top').fadeIn(); - } else { - $('#back-top').fadeOut(); - } - }); - // scroll body to 0px on click - $('#back-top').on('click', function () { - $('#back-top').tooltip('hide'); - $('body,html').animate({ - scrollTop: 0 - }, 1500); - return false; - }); - - - /*-------- Owl Carousel ---------- */ - $(".reviews").owlCarousel({ - - slideSpeed : 200, - items: 1, - singleItem: true, - autoPlay : true, - pagination : false - }); - - - /*-------- Owl Carousel ---------- */ - $(".review-cards").owlCarousel({ - - slideSpeed : 200, - items: 1, - singleItem: true, - autoPlay : true, - pagination : false - }); - - - /* ------ jQuery for Easing min -- */ - - // Smooth scrolling using jQuery easing - $('a.js-scroll-trigger[href*="#"]:not([href="#"])').on('click', function () { - if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { - var target = $(this.hash); - target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); - if (target.length) { - $('html, body').animate({ - scrollTop: (target.offset().top - 54) - }, 1000, "easeInOutExpo"); - return false; - } - } - }); - - - /* --------- Wow Init ------ */ - - new WOW().init(); - - - /* ------ Countdown ----- */ - - $('#countdown').countdown({ - date: '12/12/2031 12:00:00', - offset: +2, - day: 'Day', - days: 'Days' - }, function () { - alert('Done!'); - }); - - -/*----- Preloader ----- */ - - $(window).load(function() { - setTimeout(function() { - $('#loading').fadeOut('slow', function() { - }); - }, 3000); - }); - - -/*----- Subscription Form ----- */ - -$(document).ready(function() { - // jQuery Validation - $("#chimp-form").validate({ - // if valid, post data via AJAX - submitHandler: function(form) { - $.post("assets/php/subscribe.php", { email: $("#email").val() }, function(data) { - $('#response').html(data); - }); - }, - // all fields are required - rules: { - email: { - required: true, - email: true - } - } - }); -}); - -// Accordion // - -function toggleChevron(e) { - $(e.target) - .prev('.panel-heading') - .find("span.glyphicon") - .toggleClass('glyphicon-chevron-down glyphicon-chevron-right'); - } - $('#accordion').on('hide.bs.collapse show.bs.collapse', toggleChevron); - - - -}); +// Custom Scripts for Primal Template // + +jQuery(function($) { + "use strict"; + + // get the value of the bottom of the #main element by adding the offset of that element plus its height, set it as a variable + var mainbottom = $("#main").offset().top; + + // on scroll, + $(window).on("scroll", function() { + // we round here to reduce a little workload + stop = Math.round($(window).scrollTop()); + if (stop > mainbottom) { + $(".navbar").addClass("past-main"); + $(".navbar").addClass("effect-main"); + } else { + $(".navbar").removeClass("past-main"); + } + }); + + // Collapse navbar on click + + $(document).on("click.nav", ".navbar-collapse.in", function(e) { + if ($(e.target).is("a")) { + $(this).removeClass("in").addClass("collapse"); + } + }); + + /*----------------------------------- + ----------- Scroll To Top ----------- + ------------------------------------*/ + + $(window).scroll(function() { + if ($(this).scrollTop() > 1000) { + $("#back-top").fadeIn(); + } else { + $("#back-top").fadeOut(); + } + }); + // scroll body to 0px on click + $("#back-top").on("click", function() { + $("#back-top").tooltip("hide"); + $("body,html").animate({ + scrollTop: 0, + }, 1500); + return false; + }); + + /*-------- Owl Carousel ---------- */ + $(".reviews").owlCarousel({ + slideSpeed: 200, + items: 1, + singleItem: true, + autoPlay: true, + pagination: false, + }); + + /*-------- Owl Carousel ---------- */ + $(".review-cards").owlCarousel({ + slideSpeed: 200, + items: 1, + singleItem: true, + autoPlay: true, + pagination: false, + }); + + /* ------ jQuery for Easing min -- */ + + // Smooth scrolling using jQuery easing + $("a.js-scroll-trigger[href*=\"#\"]:not([href=\"#\"])").on("click", function() { + if ( + location.pathname.replace(/^\//, "") == this.pathname.replace(/^\//, "") && location.hostname == this.hostname + ) { + var target = $(this.hash); + target = target.length ? target : $("[name=" + this.hash.slice(1) + "]"); + if (target.length) { + $("html, body").animate( + { + scrollTop: (target.offset().top - 54), + }, + 1000, + "easeInOutExpo", + ); + return false; + } + } + }); + + /* --------- Wow Init ------ */ + + new WOW().init(); + + /* ------ Countdown ----- */ + + $("#countdown").countdown({ + date: "12/12/2031 12:00:00", + offset: +2, + day: "Day", + days: "Days", + }, function() { + alert("Done!"); + }); + + /*----- Preloader ----- */ + + $(window).load(function() { + setTimeout(function() { + $("#loading").fadeOut("slow", function() { + }); + }, 3000); + }); + + /*----- Subscription Form ----- */ + + $(document).ready(function() { + // jQuery Validation + $("#chimp-form").validate({ + // if valid, post data via AJAX + submitHandler: function(form) { + $.post("assets/php/subscribe.php", { email: $("#email").val() }, function(data) { + $("#response").html(data); + }); + }, + // all fields are required + rules: { + email: { + required: true, + email: true, + }, + }, + }); + }); + + // Accordion // + + function toggleChevron(e) { + $(e.target) + .prev(".panel-heading") + .find("span.glyphicon") + .toggleClass("glyphicon-chevron-down glyphicon-chevron-right"); + } + $("#accordion").on("hide.bs.collapse show.bs.collapse", toggleChevron); +}); diff --git a/docs/assets/js/jquery-2.1.1.js b/docs/assets/js/jquery-2.1.1.js index e5ace116b6..1bc66b6109 100644 --- a/docs/assets/js/jquery-2.1.1.js +++ b/docs/assets/js/jquery-2.1.1.js @@ -1,4 +1,3929 @@ /*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b) -},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()}); - - - - -// Generated by CoffeeScript 1.6.2 -/* -jQuery Waypoints - v2.0.3 -Copyright (c) 2011-2013 Caleb Troughton -Dual licensed under the MIT license and GPL license. -https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt -*/ -(function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e=0;s={horizontal:{},vertical:{}};f=1;a={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};t.data(u,this.id);a[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||c)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(c&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete a[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=t.data(w))!=null?o:[];i.push(this.id);t.data(w,i)}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=n(t).data(w);if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=a[i.data(u)];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(et.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=a[n(t).data(u)];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this); - - - -/*! - * imagesLoaded PACKAGED v4.1.1 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}(window,function(t,e){function i(t,e){for(var i in e)t[i]=e[i];return t}function n(t){var e=[];if(Array.isArray(t))e=t;else if("number"==typeof t.length)for(var i=0;ih;h++){var j=this[h],k=a.data(j,b);if(k)if(a.isFunction(k[e])&&"_"!==e.charAt(0)){var l=k[e].apply(k,g);if(void 0!==l)return l}else f("no such method '"+e+"' for "+b+" instance");else f("cannot call methods on "+b+" prior to initialization; attempted to call '"+e+"'")}return this}return this.each(function(){var d=a.data(this,b);d?(d.option(e),d._init()):(d=new c(this,e),a.data(this,b,d))})}}if(a){var f="undefined"==typeof console?b:function(a){console.error(a)};return a.bridget=function(a,b){c(b),e(a,b)},a.bridget}}var d=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],c):c("object"==typeof exports?require("jquery"):a.jQuery)}(window),function(a){function b(b){var c=a.event;return c.target=c.target||c.srcElement||b,c}var c=document.documentElement,d=function(){};c.addEventListener?d=function(a,b,c){a.addEventListener(b,c,!1)}:c.attachEvent&&(d=function(a,c,d){a[c+d]=d.handleEvent?function(){var c=b(a);d.handleEvent.call(d,c)}:function(){var c=b(a);d.call(a,c)},a.attachEvent("on"+c,a[c+d])});var e=function(){};c.removeEventListener?e=function(a,b,c){a.removeEventListener(b,c,!1)}:c.detachEvent&&(e=function(a,b,c){a.detachEvent("on"+b,a[b+c]);try{delete a[b+c]}catch(d){a[b+c]=void 0}});var f={bind:d,unbind:e};"function"==typeof define&&define.amd?define("eventie/eventie",f):"object"==typeof exports?module.exports=f:a.eventie=f}(window),function(){"use strict";function a(){}function b(a,b){for(var c=a.length;c--;)if(a[c].listener===b)return c;return-1}function c(a){return function(){return this[a].apply(this,arguments)}}var d=a.prototype,e=this,f=e.EventEmitter;d.getListeners=function(a){var b,c,d=this._getEvents();if(a instanceof RegExp){b={};for(c in d)d.hasOwnProperty(c)&&a.test(c)&&(b[c]=d[c])}else b=d[a]||(d[a]=[]);return b},d.flattenListeners=function(a){var b,c=[];for(b=0;be;e++)if(b=c[e]+a,"string"==typeof d[b])return b}}var c="Webkit Moz ms Ms O".split(" "),d=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return b}):"object"==typeof exports?module.exports=b:a.getStyleProperty=b}(window),function(a,b){function c(a){var b=parseFloat(a),c=-1===a.indexOf("%")&&!isNaN(b);return c&&b}function d(){}function e(){for(var a={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},b=0,c=h.length;c>b;b++){var d=h[b];a[d]=0}return a}function f(b){function d(){if(!m){m=!0;var d=a.getComputedStyle;if(j=function(){var a=d?function(a){return d(a,null)}:function(a){return a.currentStyle};return function(b){var c=a(b);return c||g("Style returned "+c+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),c}}(),k=b("boxSizing")){var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style[k]="border-box";var f=document.body||document.documentElement;f.appendChild(e);var h=j(e);l=200===c(h.width),f.removeChild(e)}}}function f(a){if(d(),"string"==typeof a&&(a=document.querySelector(a)),a&&"object"==typeof a&&a.nodeType){var b=j(a);if("none"===b.display)return e();var f={};f.width=a.offsetWidth,f.height=a.offsetHeight;for(var g=f.isBorderBox=!(!k||!b[k]||"border-box"!==b[k]),m=0,n=h.length;n>m;m++){var o=h[m],p=b[o];p=i(a,p);var q=parseFloat(p);f[o]=isNaN(q)?0:q}var r=f.paddingLeft+f.paddingRight,s=f.paddingTop+f.paddingBottom,t=f.marginLeft+f.marginRight,u=f.marginTop+f.marginBottom,v=f.borderLeftWidth+f.borderRightWidth,w=f.borderTopWidth+f.borderBottomWidth,x=g&&l,y=c(b.width);y!==!1&&(f.width=y+(x?0:r+v));var z=c(b.height);return z!==!1&&(f.height=z+(x?0:s+w)),f.innerWidth=f.width-(r+v),f.innerHeight=f.height-(s+w),f.outerWidth=f.width+t,f.outerHeight=f.height+u,f}}function i(b,c){if(a.getComputedStyle||-1===c.indexOf("%"))return c;var d=b.style,e=d.left,f=b.runtimeStyle,g=f&&f.left;return g&&(f.left=b.currentStyle.left),d.left=c,c=d.pixelLeft,d.left=e,g&&(f.left=g),c}var j,k,l,m=!1;return f}var g="undefined"==typeof console?d:function(a){console.error(a)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];"function"==typeof define&&define.amd?define("get-size/get-size",["get-style-property/get-style-property"],f):"object"==typeof exports?module.exports=f(require("desandro-get-style-property")):a.getSize=f(a.getStyleProperty)}(window),function(a){function b(a){"function"==typeof a&&(b.isReady?a():g.push(a))}function c(a){var c="readystatechange"===a.type&&"complete"!==f.readyState;b.isReady||c||d()}function d(){b.isReady=!0;for(var a=0,c=g.length;c>a;a++){var d=g[a];d()}}function e(e){return"complete"===f.readyState?d():(e.bind(f,"DOMContentLoaded",c),e.bind(f,"readystatechange",c),e.bind(a,"load",c)),b}var f=a.document,g=[];b.isReady=!1,"function"==typeof define&&define.amd?define("doc-ready/doc-ready",["eventie/eventie"],e):"object"==typeof exports?module.exports=e(require("eventie")):a.docReady=e(a.eventie)}(window),function(a){"use strict";function b(a,b){return a[g](b)}function c(a){if(!a.parentNode){var b=document.createDocumentFragment();b.appendChild(a)}}function d(a,b){c(a);for(var d=a.parentNode.querySelectorAll(b),e=0,f=d.length;f>e;e++)if(d[e]===a)return!0;return!1}function e(a,d){return c(a),b(a,d)}var f,g=function(){if(a.matches)return"matches";if(a.matchesSelector)return"matchesSelector";for(var b=["webkit","moz","ms","o"],c=0,d=b.length;d>c;c++){var e=b[c],f=e+"MatchesSelector";if(a[f])return f}}();if(g){var h=document.createElement("div"),i=b(h,"div");f=i?b:e}else f=d;"function"==typeof define&&define.amd?define("matches-selector/matches-selector",[],function(){return f}):"object"==typeof exports?module.exports=f:window.matchesSelector=f}(Element.prototype),function(a,b){"use strict";"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["doc-ready/doc-ready","matches-selector/matches-selector"],function(c,d){return b(a,c,d)}):"object"==typeof exports?module.exports=b(a,require("doc-ready"),require("desandro-matches-selector")):a.fizzyUIUtils=b(a,a.docReady,a.matchesSelector)}(window,function(a,b,c){var d={};d.extend=function(a,b){for(var c in b)a[c]=b[c];return a},d.modulo=function(a,b){return(a%b+b)%b};var e=Object.prototype.toString;d.isArray=function(a){return"[object Array]"==e.call(a)},d.makeArray=function(a){var b=[];if(d.isArray(a))b=a;else if(a&&"number"==typeof a.length)for(var c=0,e=a.length;e>c;c++)b.push(a[c]);else b.push(a);return b},d.indexOf=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},d.removeFrom=function(a,b){var c=d.indexOf(a,b);-1!=c&&a.splice(c,1)},d.isElement="function"==typeof HTMLElement||"object"==typeof HTMLElement?function(a){return a instanceof HTMLElement}:function(a){return a&&"object"==typeof a&&1==a.nodeType&&"string"==typeof a.nodeName},d.setText=function(){function a(a,c){b=b||(void 0!==document.documentElement.textContent?"textContent":"innerText"),a[b]=c}var b;return a}(),d.getParent=function(a,b){for(;a!=document.body;)if(a=a.parentNode,c(a,b))return a},d.getQueryElement=function(a){return"string"==typeof a?document.querySelector(a):a},d.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},d.filterFindElements=function(a,b){a=d.makeArray(a);for(var e=[],f=0,g=a.length;g>f;f++){var h=a[f];if(d.isElement(h))if(b){c(h,b)&&e.push(h);for(var i=h.querySelectorAll(b),j=0,k=i.length;k>j;j++)e.push(i[j])}else e.push(h)}return e},d.debounceMethod=function(a,b,c){var d=a.prototype[b],e=b+"Timeout";a.prototype[b]=function(){var a=this[e];a&&clearTimeout(a);var b=arguments,f=this;this[e]=setTimeout(function(){d.apply(f,b),delete f[e]},c||100)}},d.toDashed=function(a){return a.replace(/(.)([A-Z])/g,function(a,b,c){return b+"-"+c}).toLowerCase()};var f=a.console;return d.htmlInit=function(c,e){b(function(){for(var b=d.toDashed(e),g=document.querySelectorAll(".js-"+b),h="data-"+b+"-options",i=0,j=g.length;j>i;i++){var k,l=g[i],m=l.getAttribute(h);try{k=m&&JSON.parse(m)}catch(n){f&&f.error("Error parsing "+h+" on "+l.nodeName.toLowerCase()+(l.id?"#"+l.id:"")+": "+n);continue}var o=new c(l,k),p=a.jQuery;p&&p.data(l,e,o)}})},d}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("outlayer/item",["eventEmitter/EventEmitter","get-size/get-size","get-style-property/get-style-property","fizzy-ui-utils/utils"],function(c,d,e,f){return b(a,c,d,e,f)}):"object"==typeof exports?module.exports=b(a,require("wolfy87-eventemitter"),require("get-size"),require("desandro-get-style-property"),require("fizzy-ui-utils")):(a.Outlayer={},a.Outlayer.Item=b(a,a.EventEmitter,a.getSize,a.getStyleProperty,a.fizzyUIUtils))}(window,function(a,b,c,d,e){"use strict";function f(a){for(var b in a)return!1;return b=null,!0}function g(a,b){a&&(this.element=a,this.layout=b,this.position={x:0,y:0},this._create())}function h(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}var i=a.getComputedStyle,j=i?function(a){return i(a,null)}:function(a){return a.currentStyle},k=d("transition"),l=d("transform"),m=k&&l,n=!!d("perspective"),o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"}[k],p=["transform","transition","transitionDuration","transitionProperty"],q=function(){for(var a={},b=0,c=p.length;c>b;b++){var e=p[b],f=d(e);f&&f!==e&&(a[e]=f)}return a}();e.extend(g.prototype,b.prototype),g.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},g.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},g.prototype.getSize=function(){this.size=c(this.element)},g.prototype.css=function(a){var b=this.element.style;for(var c in a){var d=q[c]||c;b[d]=a[c]}},g.prototype.getPosition=function(){var a=j(this.element),b=this.layout.options,c=b.isOriginLeft,d=b.isOriginTop,e=a[c?"left":"right"],f=a[d?"top":"bottom"],g=this.layout.size,h=-1!=e.indexOf("%")?parseFloat(e)/100*g.width:parseInt(e,10),i=-1!=f.indexOf("%")?parseFloat(f)/100*g.height:parseInt(f,10);h=isNaN(h)?0:h,i=isNaN(i)?0:i,h-=c?g.paddingLeft:g.paddingRight,i-=d?g.paddingTop:g.paddingBottom,this.position.x=h,this.position.y=i},g.prototype.layoutPosition=function(){var a=this.layout.size,b=this.layout.options,c={},d=b.isOriginLeft?"paddingLeft":"paddingRight",e=b.isOriginLeft?"left":"right",f=b.isOriginLeft?"right":"left",g=this.position.x+a[d];c[e]=this.getXValue(g),c[f]="";var h=b.isOriginTop?"paddingTop":"paddingBottom",i=b.isOriginTop?"top":"bottom",j=b.isOriginTop?"bottom":"top",k=this.position.y+a[h];c[i]=this.getYValue(k),c[j]="",this.css(c),this.emitEvent("layout",[this])},g.prototype.getXValue=function(a){var b=this.layout.options;return b.percentPosition&&!b.isHorizontal?a/this.layout.size.width*100+"%":a+"px"},g.prototype.getYValue=function(a){var b=this.layout.options;return b.percentPosition&&b.isHorizontal?a/this.layout.size.height*100+"%":a+"px"},g.prototype._transitionTo=function(a,b){this.getPosition();var c=this.position.x,d=this.position.y,e=parseInt(a,10),f=parseInt(b,10),g=e===this.position.x&&f===this.position.y;if(this.setPosition(a,b),g&&!this.isTransitioning)return void this.layoutPosition();var h=a-c,i=b-d,j={};j.transform=this.getTranslate(h,i),this.transition({to:j,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},g.prototype.getTranslate=function(a,b){var c=this.layout.options;return a=c.isOriginLeft?a:-a,b=c.isOriginTop?b:-b,n?"translate3d("+a+"px, "+b+"px, 0)":"translate("+a+"px, "+b+"px)"},g.prototype.goTo=function(a,b){this.setPosition(a,b),this.layoutPosition()},g.prototype.moveTo=m?g.prototype._transitionTo:g.prototype.goTo,g.prototype.setPosition=function(a,b){this.position.x=parseInt(a,10),this.position.y=parseInt(b,10)},g.prototype._nonTransition=function(a){this.css(a.to),a.isCleaning&&this._removeStyles(a.to);for(var b in a.onTransitionEnd)a.onTransitionEnd[b].call(this)},g.prototype._transition=function(a){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(a);var b=this._transn;for(var c in a.onTransitionEnd)b.onEnd[c]=a.onTransitionEnd[c];for(c in a.to)b.ingProperties[c]=!0,a.isCleaning&&(b.clean[c]=!0);if(a.from){this.css(a.from);var d=this.element.offsetHeight;d=null}this.enableTransition(a.to),this.css(a.to),this.isTransitioning=!0};var r="opacity,"+h(q.transform||"transform");g.prototype.enableTransition=function(){this.isTransitioning||(this.css({transitionProperty:r,transitionDuration:this.layout.options.transitionDuration}),this.element.addEventListener(o,this,!1))},g.prototype.transition=g.prototype[k?"_transition":"_nonTransition"],g.prototype.onwebkitTransitionEnd=function(a){this.ontransitionend(a)},g.prototype.onotransitionend=function(a){this.ontransitionend(a)};var s={"-webkit-transform":"transform","-moz-transform":"transform","-o-transform":"transform"};g.prototype.ontransitionend=function(a){if(a.target===this.element){var b=this._transn,c=s[a.propertyName]||a.propertyName;if(delete b.ingProperties[c],f(b.ingProperties)&&this.disableTransition(),c in b.clean&&(this.element.style[a.propertyName]="",delete b.clean[c]),c in b.onEnd){var d=b.onEnd[c];d.call(this),delete b.onEnd[c]}this.emitEvent("transitionEnd",[this])}},g.prototype.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(o,this,!1),this.isTransitioning=!1},g.prototype._removeStyles=function(a){var b={};for(var c in a)b[c]="";this.css(b)};var t={transitionProperty:"",transitionDuration:""};return g.prototype.removeTransitionStyles=function(){this.css(t)},g.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},g.prototype.remove=function(){if(!k||!parseFloat(this.layout.options.transitionDuration))return void this.removeElem();var a=this;this.once("transitionEnd",function(){a.removeElem()}),this.hide()},g.prototype.reveal=function(){delete this.isHidden,this.css({display:""});var a=this.layout.options,b={},c=this.getHideRevealTransitionEndProperty("visibleStyle");b[c]=this.onRevealTransitionEnd,this.transition({from:a.hiddenStyle,to:a.visibleStyle,isCleaning:!0,onTransitionEnd:b})},g.prototype.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},g.prototype.getHideRevealTransitionEndProperty=function(a){var b=this.layout.options[a];if(b.opacity)return"opacity";for(var c in b)return c},g.prototype.hide=function(){this.isHidden=!0,this.css({display:""});var a=this.layout.options,b={},c=this.getHideRevealTransitionEndProperty("hiddenStyle");b[c]=this.onHideTransitionEnd,this.transition({from:a.visibleStyle,to:a.hiddenStyle,isCleaning:!0,onTransitionEnd:b})},g.prototype.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},g.prototype.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},g}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["eventie/eventie","eventEmitter/EventEmitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(c,d,e,f,g){return b(a,c,d,e,f,g)}):"object"==typeof exports?module.exports=b(a,require("eventie"),require("wolfy87-eventemitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):a.Outlayer=b(a,a.eventie,a.EventEmitter,a.getSize,a.fizzyUIUtils,a.Outlayer.Item)}(window,function(a,b,c,d,e,f){"use strict";function g(a,b){var c=e.getQueryElement(a);if(!c)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(c||a)));this.element=c,i&&(this.$element=i(this.element)),this.options=e.extend({},this.constructor.defaults),this.option(b);var d=++k;this.element.outlayerGUID=d,l[d]=this,this._create(),this.options.isInitLayout&&this.layout()}var h=a.console,i=a.jQuery,j=function(){},k=0,l={};return g.namespace="outlayer",g.Item=f,g.defaults={containerStyle:{position:"relative"},isInitLayout:!0,isOriginLeft:!0,isOriginTop:!0,isResizeBound:!0,isResizingContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}},e.extend(g.prototype,c.prototype),g.prototype.option=function(a){e.extend(this.options,a)},g.prototype._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),e.extend(this.element.style,this.options.containerStyle),this.options.isResizeBound&&this.bindResize()},g.prototype.reloadItems=function(){this.items=this._itemize(this.element.children)},g.prototype._itemize=function(a){for(var b=this._filterFindItemElements(a),c=this.constructor.Item,d=[],e=0,f=b.length;f>e;e++){var g=b[e],h=new c(g,this);d.push(h)}return d},g.prototype._filterFindItemElements=function(a){return e.filterFindElements(a,this.options.itemSelector)},g.prototype.getItemElements=function(){for(var a=[],b=0,c=this.items.length;c>b;b++)a.push(this.items[b].element);return a},g.prototype.layout=function(){this._resetLayout(),this._manageStamps();var a=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,a),this._isLayoutInited=!0},g.prototype._init=g.prototype.layout,g.prototype._resetLayout=function(){this.getSize()},g.prototype.getSize=function(){this.size=d(this.element)},g.prototype._getMeasurement=function(a,b){var c,f=this.options[a];f?("string"==typeof f?c=this.element.querySelector(f):e.isElement(f)&&(c=f),this[a]=c?d(c)[b]:f):this[a]=0},g.prototype.layoutItems=function(a,b){a=this._getItemsForLayout(a),this._layoutItems(a,b),this._postLayout()},g.prototype._getItemsForLayout=function(a){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c];e.isIgnored||b.push(e)}return b},g.prototype._layoutItems=function(a,b){if(this._emitCompleteOnItems("layout",a),a&&a.length){for(var c=[],d=0,e=a.length;e>d;d++){var f=a[d],g=this._getItemLayoutPosition(f);g.item=f,g.isInstant=b||f.isLayoutInstant,c.push(g)}this._processLayoutQueue(c)}},g.prototype._getItemLayoutPosition=function(){return{x:0,y:0}},g.prototype._processLayoutQueue=function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b];this._positionItem(d.item,d.x,d.y,d.isInstant)}},g.prototype._positionItem=function(a,b,c,d){d?a.goTo(b,c):a.moveTo(b,c)},g.prototype._postLayout=function(){this.resizeContainer()},g.prototype.resizeContainer=function(){if(this.options.isResizingContainer){var a=this._getContainerSize();a&&(this._setContainerMeasure(a.width,!0),this._setContainerMeasure(a.height,!1))}},g.prototype._getContainerSize=j,g.prototype._setContainerMeasure=function(a,b){if(void 0!==a){var c=this.size;c.isBorderBox&&(a+=b?c.paddingLeft+c.paddingRight+c.borderLeftWidth+c.borderRightWidth:c.paddingBottom+c.paddingTop+c.borderTopWidth+c.borderBottomWidth),a=Math.max(a,0),this.element.style[b?"width":"height"]=a+"px"}},g.prototype._emitCompleteOnItems=function(a,b){function c(){e.dispatchEvent(a+"Complete",null,[b])}function d(){g++,g===f&&c()}var e=this,f=b.length;if(!b||!f)return void c();for(var g=0,h=0,i=b.length;i>h;h++){var j=b[h];j.once(a,d)}},g.prototype.dispatchEvent=function(a,b,c){var d=b?[b].concat(c):c;if(this.emitEvent(a,d),i)if(this.$element=this.$element||i(this.element),b){var e=i.Event(b);e.type=a,this.$element.trigger(e,c)}else this.$element.trigger(a,c)},g.prototype.ignore=function(a){var b=this.getItem(a);b&&(b.isIgnored=!0)},g.prototype.unignore=function(a){var b=this.getItem(a);b&&delete b.isIgnored},g.prototype.stamp=function(a){if(a=this._find(a)){this.stamps=this.stamps.concat(a);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.ignore(d)}}},g.prototype.unstamp=function(a){if(a=this._find(a))for(var b=0,c=a.length;c>b;b++){var d=a[b];e.removeFrom(this.stamps,d),this.unignore(d)}},g.prototype._find=function(a){return a?("string"==typeof a&&(a=this.element.querySelectorAll(a)),a=e.makeArray(a)):void 0},g.prototype._manageStamps=function(){if(this.stamps&&this.stamps.length){this._getBoundingRect();for(var a=0,b=this.stamps.length;b>a;a++){var c=this.stamps[a];this._manageStamp(c)}}},g.prototype._getBoundingRect=function(){var a=this.element.getBoundingClientRect(),b=this.size;this._boundingRect={left:a.left+b.paddingLeft+b.borderLeftWidth,top:a.top+b.paddingTop+b.borderTopWidth,right:a.right-(b.paddingRight+b.borderRightWidth),bottom:a.bottom-(b.paddingBottom+b.borderBottomWidth)}},g.prototype._manageStamp=j,g.prototype._getElementOffset=function(a){var b=a.getBoundingClientRect(),c=this._boundingRect,e=d(a),f={left:b.left-c.left-e.marginLeft,top:b.top-c.top-e.marginTop,right:c.right-b.right-e.marginRight,bottom:c.bottom-b.bottom-e.marginBottom};return f},g.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},g.prototype.bindResize=function(){this.isResizeBound||(b.bind(a,"resize",this),this.isResizeBound=!0)},g.prototype.unbindResize=function(){this.isResizeBound&&b.unbind(a,"resize",this),this.isResizeBound=!1},g.prototype.onresize=function(){function a(){b.resize(),delete b.resizeTimeout}this.resizeTimeout&&clearTimeout(this.resizeTimeout);var b=this;this.resizeTimeout=setTimeout(a,100)},g.prototype.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},g.prototype.needsResizeLayout=function(){var a=d(this.element),b=this.size&&a;return b&&a.innerWidth!==this.size.innerWidth},g.prototype.addItems=function(a){var b=this._itemize(a);return b.length&&(this.items=this.items.concat(b)),b},g.prototype.appended=function(a){var b=this.addItems(a);b.length&&(this.layoutItems(b,!0),this.reveal(b))},g.prototype.prepended=function(a){var b=this._itemize(a);if(b.length){var c=this.items.slice(0);this.items=b.concat(c),this._resetLayout(),this._manageStamps(),this.layoutItems(b,!0),this.reveal(b),this.layoutItems(c)}},g.prototype.reveal=function(a){this._emitCompleteOnItems("reveal",a);for(var b=a&&a.length,c=0;b&&b>c;c++){var d=a[c];d.reveal()}},g.prototype.hide=function(a){this._emitCompleteOnItems("hide",a);for(var b=a&&a.length,c=0;b&&b>c;c++){var d=a[c];d.hide()}},g.prototype.revealItemElements=function(a){var b=this.getItems(a);this.reveal(b)},g.prototype.hideItemElements=function(a){var b=this.getItems(a);this.hide(b)},g.prototype.getItem=function(a){for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];if(d.element===a)return d}},g.prototype.getItems=function(a){a=e.makeArray(a);for(var b=[],c=0,d=a.length;d>c;c++){var f=a[c],g=this.getItem(f);g&&b.push(g)}return b},g.prototype.remove=function(a){var b=this.getItems(a);if(this._emitCompleteOnItems("remove",b),b&&b.length)for(var c=0,d=b.length;d>c;c++){var f=b[c];f.remove(),e.removeFrom(this.items,f)}},g.prototype.destroy=function(){var a=this.element.style;a.height="",a.position="",a.width="";for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];d.destroy()}this.unbindResize();var e=this.element.outlayerGUID;delete l[e],delete this.element.outlayerGUID,i&&i.removeData(this.element,this.constructor.namespace)},g.data=function(a){a=e.getQueryElement(a);var b=a&&a.outlayerGUID;return b&&l[b]},g.create=function(a,b){function c(){g.apply(this,arguments)}return Object.create?c.prototype=Object.create(g.prototype):e.extend(c.prototype,g.prototype),c.prototype.constructor=c,c.defaults=e.extend({},g.defaults),e.extend(c.defaults,b),c.prototype.settings={},c.namespace=a,c.data=g.data,c.Item=function(){f.apply(this,arguments)},c.Item.prototype=new f,e.htmlInit(c,a),i&&i.bridget&&i.bridget(a,c),c},g.Item=f,g}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/item",["outlayer/outlayer"],b):"object"==typeof exports?module.exports=b(require("outlayer")):(a.Isotope=a.Isotope||{},a.Isotope.Item=b(a.Outlayer))}(window,function(a){"use strict";function b(){a.Item.apply(this,arguments)}b.prototype=new a.Item,b.prototype._create=function(){this.id=this.layout.itemGUID++,a.Item.prototype._create.call(this),this.sortData={}},b.prototype.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var a=this.layout.options.getSortData,b=this.layout._sorters;for(var c in a){var d=b[c];this.sortData[c]=d(this.element,this)}}};var c=b.prototype.destroy;return b.prototype.destroy=function(){c.apply(this,arguments),this.css({display:""})},b}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/layout-mode",["get-size/get-size","outlayer/outlayer"],b):"object"==typeof exports?module.exports=b(require("get-size"),require("outlayer")):(a.Isotope=a.Isotope||{},a.Isotope.LayoutMode=b(a.getSize,a.Outlayer))}(window,function(a,b){"use strict";function c(a){this.isotope=a,a&&(this.options=a.options[this.namespace],this.element=a.element,this.items=a.filteredItems,this.size=a.size)}return function(){function a(a){return function(){return b.prototype[a].apply(this.isotope,arguments)}}for(var d=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout"],e=0,f=d.length;f>e;e++){var g=d[e];c.prototype[g]=a(g)}}(),c.prototype.needsVerticalResizeLayout=function(){var b=a(this.isotope.element),c=this.isotope.size&&b;return c&&b.innerHeight!=this.isotope.size.innerHeight},c.prototype._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},c.prototype.getColumnWidth=function(){this.getSegmentSize("column","Width")},c.prototype.getRowHeight=function(){this.getSegmentSize("row","Height")},c.prototype.getSegmentSize=function(a,b){var c=a+b,d="outer"+b;if(this._getMeasurement(c,d),!this[c]){var e=this.getFirstItemSize();this[c]=e&&e[d]||this.isotope.size["inner"+b]}},c.prototype.getFirstItemSize=function(){var b=this.isotope.filteredItems[0];return b&&b.element&&a(b.element)},c.prototype.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},c.prototype.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},c.modes={},c.create=function(a,b){function d(){c.apply(this,arguments)}return d.prototype=new c,b&&(d.options=b),d.prototype.namespace=a,c.modes[a]=d,d},c}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("masonry/masonry",["outlayer/outlayer","get-size/get-size","fizzy-ui-utils/utils"],b):"object"==typeof exports?module.exports=b(require("outlayer"),require("get-size"),require("fizzy-ui-utils")):a.Masonry=b(a.Outlayer,a.getSize,a.fizzyUIUtils)}(window,function(a,b,c){var d=a.create("masonry");return d.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns();var a=this.cols;for(this.colYs=[];a--;)this.colYs.push(0);this.maxY=0},d.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var a=this.items[0],c=a&&a.element;this.columnWidth=c&&b(c).outerWidth||this.containerWidth}var d=this.columnWidth+=this.gutter,e=this.containerWidth+this.gutter,f=e/d,g=d-e%d,h=g&&1>g?"round":"floor";f=Math[h](f),this.cols=Math.max(f,1)},d.prototype.getContainerWidth=function(){var a=this.options.isFitWidth?this.element.parentNode:this.element,c=b(a);this.containerWidth=c&&c.innerWidth},d.prototype._getItemLayoutPosition=function(a){a.getSize();var b=a.size.outerWidth%this.columnWidth,d=b&&1>b?"round":"ceil",e=Math[d](a.size.outerWidth/this.columnWidth);e=Math.min(e,this.cols);for(var f=this._getColGroup(e),g=Math.min.apply(Math,f),h=c.indexOf(f,g),i={x:this.columnWidth*h,y:g},j=g+a.size.outerHeight,k=this.cols+1-f.length,l=0;k>l;l++)this.colYs[h+l]=j;return i},d.prototype._getColGroup=function(a){if(2>a)return this.colYs;for(var b=[],c=this.cols+1-a,d=0;c>d;d++){var e=this.colYs.slice(d,d+a);b[d]=Math.max.apply(Math,e)}return b},d.prototype._manageStamp=function(a){var c=b(a),d=this._getElementOffset(a),e=this.options.isOriginLeft?d.left:d.right,f=e+c.outerWidth,g=Math.floor(e/this.columnWidth);g=Math.max(0,g);var h=Math.floor(f/this.columnWidth);h-=f%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var i=(this.options.isOriginTop?d.top:d.bottom)+c.outerHeight,j=g;h>=j;j++)this.colYs[j]=Math.max(i,this.colYs[j])},d.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var a={height:this.maxY};return this.options.isFitWidth&&(a.width=this._getContainerFitWidth()),a},d.prototype._getContainerFitWidth=function(){for(var a=0,b=this.cols;--b&&0===this.colYs[b];)a++;return(this.cols-a)*this.columnWidth-this.gutter},d.prototype.needsResizeLayout=function(){var a=this.containerWidth;return this.getContainerWidth(),a!==this.containerWidth},d}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],b):"object"==typeof exports?module.exports=b(require("../layout-mode"),require("masonry-layout")):b(a.Isotope.LayoutMode,a.Masonry)}(window,function(a,b){"use strict";function c(a,b){for(var c in b)a[c]=b[c];return a}var d=a.create("masonry"),e=d.prototype._getElementOffset,f=d.prototype.layout,g=d.prototype._getMeasurement; -c(d.prototype,b.prototype),d.prototype._getElementOffset=e,d.prototype.layout=f,d.prototype._getMeasurement=g;var h=d.prototype.measureColumns;d.prototype.measureColumns=function(){this.items=this.isotope.filteredItems,h.call(this)};var i=d.prototype._manageStamp;return d.prototype._manageStamp=function(){this.options.isOriginLeft=this.isotope.options.isOriginLeft,this.options.isOriginTop=this.isotope.options.isOriginTop,i.apply(this,arguments)},d}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],b):"object"==typeof exports?module.exports=b(require("../layout-mode")):b(a.Isotope.LayoutMode)}(window,function(a){"use strict";var b=a.create("fitRows");return b.prototype._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},b.prototype._getItemLayoutPosition=function(a){a.getSize();var b=a.size.outerWidth+this.gutter,c=this.isotope.size.innerWidth+this.gutter;0!==this.x&&b+this.x>c&&(this.x=0,this.y=this.maxY);var d={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+a.size.outerHeight),this.x+=b,d},b.prototype._getContainerSize=function(){return{height:this.maxY}},b}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],b):"object"==typeof exports?module.exports=b(require("../layout-mode")):b(a.Isotope.LayoutMode)}(window,function(a){"use strict";var b=a.create("vertical",{horizontalAlignment:0});return b.prototype._resetLayout=function(){this.y=0},b.prototype._getItemLayoutPosition=function(a){a.getSize();var b=(this.isotope.size.innerWidth-a.size.outerWidth)*this.options.horizontalAlignment,c=this.y;return this.y+=a.size.outerHeight,{x:b,y:c}},b.prototype._getContainerSize=function(){return{height:this.y}},b}),function(a,b){"use strict";"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(c,d,e,f,g,h){return b(a,c,d,e,f,g,h)}):"object"==typeof exports?module.exports=b(a,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("./item"),require("./layout-mode"),require("./layout-modes/masonry"),require("./layout-modes/fit-rows"),require("./layout-modes/vertical")):a.Isotope=b(a,a.Outlayer,a.getSize,a.matchesSelector,a.fizzyUIUtils,a.Isotope.Item,a.Isotope.LayoutMode)}(window,function(a,b,c,d,e,f,g){function h(a,b){return function(c,d){for(var e=0,f=a.length;f>e;e++){var g=a[e],h=c.sortData[g],i=d.sortData[g];if(h>i||i>h){var j=void 0!==b[g]?b[g]:b,k=j?1:-1;return(h>i?1:-1)*k}}return 0}}var i=a.jQuery,j=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^\s+|\s+$/g,"")},k=document.documentElement,l=k.textContent?function(a){return a.textContent}:function(a){return a.innerText},m=b.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});m.Item=f,m.LayoutMode=g,m.prototype._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),b.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var a in g.modes)this._initLayoutMode(a)},m.prototype.reloadItems=function(){this.itemGUID=0,b.prototype.reloadItems.call(this)},m.prototype._itemize=function(){for(var a=b.prototype._itemize.apply(this,arguments),c=0,d=a.length;d>c;c++){var e=a[c];e.id=this.itemGUID++}return this._updateItemsSortData(a),a},m.prototype._initLayoutMode=function(a){var b=g.modes[a],c=this.options[a]||{};this.options[a]=b.options?e.extend(b.options,c):c,this.modes[a]=new b(this)},m.prototype.layout=function(){return!this._isLayoutInited&&this.options.isInitLayout?void this.arrange():void this._layout()},m.prototype._layout=function(){var a=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,a),this._isLayoutInited=!0},m.prototype.arrange=function(a){function b(){d.reveal(c.needReveal),d.hide(c.needHide)}this.option(a),this._getIsInstant();var c=this._filter(this.items);this.filteredItems=c.matches;var d=this;this._bindArrangeComplete(),this._isInstant?this._noTransition(b):b(),this._sort(),this._layout()},m.prototype._init=m.prototype.arrange,m.prototype._getIsInstant=function(){var a=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;return this._isInstant=a,a},m.prototype._bindArrangeComplete=function(){function a(){b&&c&&d&&e.dispatchEvent("arrangeComplete",null,[e.filteredItems])}var b,c,d,e=this;this.once("layoutComplete",function(){b=!0,a()}),this.once("hideComplete",function(){c=!0,a()}),this.once("revealComplete",function(){d=!0,a()})},m.prototype._filter=function(a){var b=this.options.filter;b=b||"*";for(var c=[],d=[],e=[],f=this._getFilterTest(b),g=0,h=a.length;h>g;g++){var i=a[g];if(!i.isIgnored){var j=f(i);j&&c.push(i),j&&i.isHidden?d.push(i):j||i.isHidden||e.push(i)}}return{matches:c,needReveal:d,needHide:e}},m.prototype._getFilterTest=function(a){return i&&this.options.isJQueryFiltering?function(b){return i(b.element).is(a)}:"function"==typeof a?function(b){return a(b.element)}:function(b){return d(b.element,a)}},m.prototype.updateSortData=function(a){var b;a?(a=e.makeArray(a),b=this.getItems(a)):b=this.items,this._getSorters(),this._updateItemsSortData(b)},m.prototype._getSorters=function(){var a=this.options.getSortData;for(var b in a){var c=a[b];this._sorters[b]=n(c)}},m.prototype._updateItemsSortData=function(a){for(var b=a&&a.length,c=0;b&&b>c;c++){var d=a[c];d.updateSortData()}};var n=function(){function a(a){if("string"!=typeof a)return a;var c=j(a).split(" "),d=c[0],e=d.match(/^\[(.+)\]$/),f=e&&e[1],g=b(f,d),h=m.sortDataParsers[c[1]];return a=h?function(a){return a&&h(g(a))}:function(a){return a&&g(a)}}function b(a,b){var c;return c=a?function(b){return b.getAttribute(a)}:function(a){var c=a.querySelector(b);return c&&l(c)}}return a}();m.sortDataParsers={parseInt:function(a){return parseInt(a,10)},parseFloat:function(a){return parseFloat(a)}},m.prototype._sort=function(){var a=this.options.sortBy;if(a){var b=[].concat.apply(a,this.sortHistory),c=h(b,this.options.sortAscending);this.filteredItems.sort(c),a!=this.sortHistory[0]&&this.sortHistory.unshift(a)}},m.prototype._mode=function(){var a=this.options.layoutMode,b=this.modes[a];if(!b)throw new Error("No layout mode: "+a);return b.options=this.options[a],b},m.prototype._resetLayout=function(){b.prototype._resetLayout.call(this),this._mode()._resetLayout()},m.prototype._getItemLayoutPosition=function(a){return this._mode()._getItemLayoutPosition(a)},m.prototype._manageStamp=function(a){this._mode()._manageStamp(a)},m.prototype._getContainerSize=function(){return this._mode()._getContainerSize()},m.prototype.needsResizeLayout=function(){return this._mode().needsResizeLayout()},m.prototype.appended=function(a){var b=this.addItems(a);if(b.length){var c=this._filterRevealAdded(b);this.filteredItems=this.filteredItems.concat(c)}},m.prototype.prepended=function(a){var b=this._itemize(a);if(b.length){this._resetLayout(),this._manageStamps();var c=this._filterRevealAdded(b);this.layoutItems(this.filteredItems),this.filteredItems=c.concat(this.filteredItems),this.items=b.concat(this.items)}},m.prototype._filterRevealAdded=function(a){var b=this._filter(a);return this.hide(b.needHide),this.reveal(b.matches),this.layoutItems(b.matches,!0),b.matches},m.prototype.insert=function(a){var b=this.addItems(a);if(b.length){var c,d,e=b.length;for(c=0;e>c;c++)d=b[c],this.element.appendChild(d.element);var f=this._filter(b).matches;for(c=0;e>c;c++)b[c].isLayoutInstant=!0;for(this.arrange(),c=0;e>c;c++)delete b[c].isLayoutInstant;this.reveal(f)}};var o=m.prototype.remove;return m.prototype.remove=function(a){a=e.makeArray(a);var b=this.getItems(a);o.call(this,a);var c=b&&b.length;if(c)for(var d=0;c>d;d++){var f=b[d];e.removeFrom(this.filteredItems,f)}},m.prototype.shuffle=function(){for(var a=0,b=this.items.length;b>a;a++){var c=this.items[a];c.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},m.prototype._noTransition=function(a){var b=this.options.transitionDuration;this.options.transitionDuration=0;var c=a.call(this);return this.options.transitionDuration=b,c},m.prototype.getFilteredItemElements=function(){for(var a=[],b=0,c=this.filteredItems.length;c>b;b++)a.push(this.filteredItems[b].element);return a},m}); - - - -/*! -* jquery.counterup.js 1.0 -* -* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal -* Released under the GPL v2 License -* -* Date: Nov 26, 2013 -*/(function(e){"use strict";e.fn.counterUp=function(t){var n=e.extend({time:400,delay:10},t);return this.each(function(){var t=e(this),r=n,i=function(){var e=[],n=r.time/r.delay,i=t.text(),s=/[0-9]+,[0-9]+/.test(i);i=i.replace(/,/g,"");var o=/^[0-9]+$/.test(i),u=/^[0-9]+\.[0-9]+$/.test(i),a=u?(i.split(".")[1]||[]).length:0;for(var f=n;f>=1;f--){var l=parseInt(i/n*f);u&&(l=parseFloat(i/n*f).toFixed(a));if(s)while(/(\d+)(\d{3})/.test(l.toString()))l=l.toString().replace(/(\d+)(\d{3})/,"$1,$2");e.unshift(l)}t.data("counterup-nums",e);t.text("0");var c=function(){t.text(t.data("counterup-nums").shift());if(t.data("counterup-nums").length)setTimeout(t.data("counterup-func"),r.delay);else{delete t.data("counterup-nums");t.data("counterup-nums",null);t.data("counterup-func",null)}};t.data("counterup-func",c);setTimeout(t.data("counterup-func"),r.delay)};t.waypoint(i,{offset:"100%",triggerOnce:!0})})}})(jQuery); - - - -/* - * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ - * - * Uses the built in easing capabilities added In jQuery 1.1 - * to offer multiple easing options - * - * TERMS OF USE - EASING EQUATIONS - * - * Open source under the BSD License. - * - * Copyright © 2001 Robert Penner - * All rights reserved. - * - * TERMS OF USE - jQuery Easing - * - * Open source under the BSD License. - * - * Copyright © 2008 George McGinley Smith - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of contributors may be used to endorse - * or promote products derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * -*/ -jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(go)return clearInterval(d),void(n&&"function"==typeof n&&n());var a=1e3,f=60*a,u=60*f,l=24*u,c=Math.floor(o/l),h=Math.floor(o%l/u),x=Math.floor(o%u/f),g=Math.floor(o%f/a),y=1===c?r.day:r.days,m=1===h?r.hour:r.hours,v=1===x?r.minute:r.minutes,D=1===g?r.second:r.seconds;c=String(c).length>=2?c:"0"+c,h=String(h).length>=2?h:"0"+h,x=String(x).length>=2?x:"0"+x,g=String(g).length>=2?g:"0"+g,i.find(".days").text(c),i.find(".hours").text(h),i.find(".minutes").text(x),i.find(".seconds").text(g),i.find(".days_text").text(y),i.find(".hours_text").text(m),i.find(".minutes_text").text(v),i.find(".seconds_text").text(D)}var r=t.extend({date:null,offset:null,day:"Day",days:"Days",hour:"Hour",hours:"Hours",minute:"Minute",minutes:"Mins",second:"Sec",seconds:"Secs"},e);r.date||t.error("Date is not defined."),Date.parse(r.date)||t.error("Incorrect date format, it should look like this, 12/24/2012 12:00:00.");var i=this,s=function(){var t=new Date,e=t.getTime()+6e4*t.getTimezoneOffset(),n=new Date(e+36e5*r.offset);return n},d=setInterval(o,1e3)}}(jQuery); \ No newline at end of file +!function(a) { + "function" == typeof define && define.amd + ? define(["jquery"], a) + : a("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto); +}(function(a) { + var b, + c, + d, + e, + f, + g, + h = "Close", + i = "BeforeClose", + j = "AfterClose", + k = "BeforeAppend", + l = "MarkupParse", + m = "Open", + n = "Change", + o = "mfp", + p = "." + o, + q = "mfp-ready", + r = "mfp-removing", + s = "mfp-prevent-close", + t = function() {}, + u = !!window.jQuery, + v = a(window), + w = function(a, c) { + b.ev.on(o + a + p, c); + }, + x = function(b, c, d, e) { + var f = document.createElement("div"); + return f.className = "mfp-" + b, + d && (f.innerHTML = d), + e ? c && c.appendChild(f) : (f = a(f), c && f.appendTo(c)), + f; + }, + y = function(c, d) { + b.ev.triggerHandler(o + c, d), + b.st.callbacks + && (c = c.charAt(0).toLowerCase() + c.slice(1), + b.st.callbacks[c] && b.st.callbacks[c].apply(b, a.isArray(d) ? d : [d])); + }, + z = function(c) { + return c === g && b.currTemplate.closeBtn + || (b.currTemplate.closeBtn = a(b.st.closeMarkup.replace("%title%", b.st.tClose)), g = c), + b.currTemplate.closeBtn; + }, + A = function() { + a.magnificPopup.instance || (b = new t(), b.init(), a.magnificPopup.instance = b); + }, + B = function() { + var a = document.createElement("p").style, b = ["ms", "O", "Moz", "Webkit"]; + if (void 0 !== a.transition) return !0; + for (; b.length;) if (b.pop() + "Transition" in a) return !0; + return !1; + }; + t.prototype = { + constructor: t, + init: function() { + var c = navigator.appVersion; + b.isLowIE = b.isIE8 = document.all && !document.addEventListener, + b.isAndroid = /android/gi.test(c), + b.isIOS = /iphone|ipad|ipod/gi.test(c), + b.supportsTransition = B(), + b.probablyMobile = b.isAndroid || b.isIOS + || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), + d = a(document), + b.popupsCache = {}; + }, + open: function(c) { + var e; + if (c.isObj === !1) { + b.items = c.items.toArray(), b.index = 0; + var g, h = c.items; + for (e = 0; e < h.length; e++) { + if (g = h[e], g.parsed && (g = g.el[0]), g === c.el[0]) { + b.index = e; + break; + } + } + } else b.items = a.isArray(c.items) ? c.items : [c.items], b.index = c.index || 0; + if (b.isOpen) return void b.updateItemHTML(); + b.types = [], + f = "", + c.mainEl && c.mainEl.length ? b.ev = c.mainEl.eq(0) : b.ev = d, + c.key + ? (b.popupsCache[c.key] || (b.popupsCache[c.key] = {}), b.currTemplate = b.popupsCache[c.key]) + : b.currTemplate = {}, + b.st = a.extend(!0, {}, a.magnificPopup.defaults, c), + b.fixedContentPos = "auto" === b.st.fixedContentPos ? !b.probablyMobile : b.st.fixedContentPos, + b.st.modal + && (b.st.closeOnContentClick = !1, b.st.closeOnBgClick = !1, b.st.showCloseBtn = !1, b.st.enableEscapeKey = !1), + b.bgOverlay || (b.bgOverlay = x("bg").on("click" + p, function() { + b.close(); + }), + b.wrap = x("wrap").attr("tabindex", -1).on("click" + p, function(a) { + b._checkIfClose(a.target) && b.close(); + }), + b.container = x("container", b.wrap)), + b.contentContainer = x("content"), + b.st.preloader && (b.preloader = x("preloader", b.container, b.st.tLoading)); + var i = a.magnificPopup.modules; + for (e = 0; e < i.length; e++) { + var j = i[e]; + j = j.charAt(0).toUpperCase() + j.slice(1), b["init" + j].call(b); + } + y("BeforeOpen"), + b.st.showCloseBtn && (b.st.closeBtnInside + ? (w(l, function(a, b, c, d) { + c.close_replaceWith = z(d.type); + }), + f += " mfp-close-btn-in") + : b.wrap.append(z())), + b.st.alignTop && (f += " mfp-align-top"), + b.fixedContentPos + ? b.wrap.css({ overflow: b.st.overflowY, overflowX: "hidden", overflowY: b.st.overflowY }) + : b.wrap.css({ top: v.scrollTop(), position: "absolute" }), + (b.st.fixedBgPos === !1 || "auto" === b.st.fixedBgPos && !b.fixedContentPos) + && b.bgOverlay.css({ height: d.height(), position: "absolute" }), + b.st.enableEscapeKey && d.on("keyup" + p, function(a) { + 27 === a.keyCode && b.close(); + }), + v.on("resize" + p, function() { + b.updateSize(); + }), + b.st.closeOnContentClick || (f += " mfp-auto-cursor"), + f && b.wrap.addClass(f); + var k = b.wH = v.height(), n = {}; + if (b.fixedContentPos && b._hasScrollBar(k)) { + var o = b._getScrollbarSize(); + o && (n.marginRight = o); + } + b.fixedContentPos && (b.isIE7 ? a("body, html").css("overflow", "hidden") : n.overflow = "hidden"); + var r = b.st.mainClass; + return b.isIE7 && (r += " mfp-ie7"), + r && b._addClassToMFP(r), + b.updateItemHTML(), + y("BuildControls"), + a("html").css(n), + b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo || a(document.body)), + b._lastFocusedEl = document.activeElement, + setTimeout(function() { + b.content ? (b._addClassToMFP(q), b._setFocus()) : b.bgOverlay.addClass(q), d.on("focusin" + p, b._onFocusIn); + }, 16), + b.isOpen = !0, + b.updateSize(k), + y(m), + c; + }, + close: function() { + b.isOpen && (y(i), + b.isOpen = !1, + b.st.removalDelay && !b.isLowIE && b.supportsTransition + ? (b._addClassToMFP(r), + setTimeout(function() { + b._close(); + }, b.st.removalDelay)) + : b._close()); + }, + _close: function() { + y(h); + var c = r + " " + q + " "; + if ( + b.bgOverlay.detach(), + b.wrap.detach(), + b.container.empty(), + b.st.mainClass && (c += b.st.mainClass + " "), + b._removeClassFromMFP(c), + b.fixedContentPos + ) { + var e = { marginRight: "" }; + b.isIE7 ? a("body, html").css("overflow", "") : e.overflow = "", a("html").css(e); + } + d.off("keyup" + p + " focusin" + p), + b.ev.off(p), + b.wrap.attr("class", "mfp-wrap").removeAttr("style"), + b.bgOverlay.attr("class", "mfp-bg"), + b.container.attr("class", "mfp-container"), + !b.st.showCloseBtn || b.st.closeBtnInside && b.currTemplate[b.currItem.type] !== !0 + || b.currTemplate.closeBtn && b.currTemplate.closeBtn.detach(), + b.st.autoFocusLast && b._lastFocusedEl && a(b._lastFocusedEl).focus(), + b.currItem = null, + b.content = null, + b.currTemplate = null, + b.prevHeight = 0, + y(j); + }, + updateSize: function(a) { + if (b.isIOS) { + var c = document.documentElement.clientWidth / window.innerWidth, d = window.innerHeight * c; + b.wrap.css("height", d), b.wH = d; + } else b.wH = a || v.height(); + b.fixedContentPos || b.wrap.css("height", b.wH), y("Resize"); + }, + updateItemHTML: function() { + var c = b.items[b.index]; + b.contentContainer.detach(), b.content && b.content.detach(), c.parsed || (c = b.parseEl(b.index)); + var d = c.type; + if (y("BeforeChange", [b.currItem ? b.currItem.type : "", d]), b.currItem = c, !b.currTemplate[d]) { + var f = b.st[d] ? b.st[d].markup : !1; + y("FirstMarkupParse", f), f ? b.currTemplate[d] = a(f) : b.currTemplate[d] = !0; + } + e && e !== c.type && b.container.removeClass("mfp-" + e + "-holder"); + var g = b["get" + d.charAt(0).toUpperCase() + d.slice(1)](c, b.currTemplate[d]); + b.appendContent(g, d), + c.preloaded = !0, + y(n, c), + e = c.type, + b.container.prepend(b.contentContainer), + y("AfterChange"); + }, + appendContent: function(a, c) { + b.content = a, + a + ? b.st.showCloseBtn && b.st.closeBtnInside && b.currTemplate[c] === !0 + ? b.content.find(".mfp-close").length || b.content.append(z()) + : b.content = a + : b.content = "", + y(k), + b.container.addClass("mfp-" + c + "-holder"), + b.contentContainer.append(b.content); + }, + parseEl: function(c) { + var d, e = b.items[c]; + if (e.tagName ? e = { el: a(e) } : (d = e.type, e = { data: e, src: e.src }), e.el) { + for (var f = b.types, g = 0; g < f.length; g++) { + if (e.el.hasClass("mfp-" + f[g])) { + d = f[g]; + break; + } + } + e.src = e.el.attr("data-mfp-src"), e.src || (e.src = e.el.attr("href")); + } + return e.type = d || b.st.type || "inline", + e.index = c, + e.parsed = !0, + b.items[c] = e, + y("ElementParse", e), + b.items[c]; + }, + addGroup: function(a, c) { + var d = function(d) { + d.mfpEl = this, b._openClick(d, a, c); + }; + c || (c = {}); + var e = "click.magnificPopup"; + c.mainEl = a, + c.items + ? (c.isObj = !0, a.off(e).on(e, d)) + : (c.isObj = !1, c.delegate ? a.off(e).on(e, c.delegate, d) : (c.items = a, a.off(e).on(e, d))); + }, + _openClick: function(c, d, e) { + var f = void 0 !== e.midClick ? e.midClick : a.magnificPopup.defaults.midClick; + if (f || !(2 === c.which || c.ctrlKey || c.metaKey || c.altKey || c.shiftKey)) { + var g = void 0 !== e.disableOn ? e.disableOn : a.magnificPopup.defaults.disableOn; + if (g) { + if (a.isFunction(g)) { + if (!g.call(b)) return !0; + else if (v.width() < g) return !0; + } + } + c.type && (c.preventDefault(), b.isOpen && c.stopPropagation()), + e.el = a(c.mfpEl), + e.delegate && (e.items = d.find(e.delegate)), + b.open(e); + } + }, + updateStatus: function(a, d) { + if (b.preloader) { + c !== a && b.container.removeClass("mfp-s-" + c), d || "loading" !== a || (d = b.st.tLoading); + var e = { status: a, text: d }; + y("UpdateStatus", e), + a = e.status, + d = e.text, + b.preloader.html(d), + b.preloader.find("a").on("click", function(a) { + a.stopImmediatePropagation(); + }), + b.container.addClass("mfp-s-" + a), + c = a; + } + }, + _checkIfClose: function(c) { + if (!a(c).hasClass(s)) { + var d = b.st.closeOnContentClick, e = b.st.closeOnBgClick; + if (d && e) return !0; + if (!b.content || a(c).hasClass("mfp-close") || b.preloader && c === b.preloader[0]) return !0; + if (c === b.content[0] || a.contains(b.content[0], c)) { + if (d) return !0; + else if (e && a.contains(document, c)) return !0; + } + return !1; + } + }, + _addClassToMFP: function(a) { + b.bgOverlay.addClass(a), b.wrap.addClass(a); + }, + _removeClassFromMFP: function(a) { + this.bgOverlay.removeClass(a), b.wrap.removeClass(a); + }, + _hasScrollBar: function(a) { + return (b.isIE7 ? d.height() : document.body.scrollHeight) > (a || v.height()); + }, + _setFocus: function() { + (b.st.focus ? b.content.find(b.st.focus).eq(0) : b.wrap).focus(); + }, + _onFocusIn: function(c) { + return c.target === b.wrap[0] || a.contains(b.wrap[0], c.target) ? void 0 : (b._setFocus(), !1); + }, + _parseMarkup: function(b, c, d) { + var e; + d.data && (c = a.extend(d.data, c)), + y(l, [b, c, d]), + a.each(c, function(c, d) { + if (void 0 === d || d === !1) return !0; + if (e = c.split("_"), e.length > 1) { + var f = b.find(p + "-" + e[0]); + if (f.length > 0) { + var g = e[1]; + "replaceWith" === g + ? f[0] !== d[0] && f.replaceWith(d) + : "img" === g + ? f.is("img") + ? f.attr("src", d) + : f.replaceWith(a("").attr("src", d).attr("class", f.attr("class"))) + : f.attr(e[1], d); + } + } else b.find(p + "-" + c).html(d); + }); + }, + _getScrollbarSize: function() { + if (void 0 === b.scrollbarSize) { + var a = document.createElement("div"); + a.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", + document.body.appendChild(a), + b.scrollbarSize = a.offsetWidth - a.clientWidth, + document.body.removeChild(a); + } + return b.scrollbarSize; + }, + }, + a.magnificPopup = { + instance: null, + proto: t.prototype, + modules: [], + open: function(b, c) { + return A(), b = b ? a.extend(!0, {}, b) : {}, b.isObj = !0, b.index = c || 0, this.instance.open(b); + }, + close: function() { + return a.magnificPopup.instance && a.magnificPopup.instance.close(); + }, + registerModule: function(b, c) { + c.options && (a.magnificPopup.defaults[b] = c.options), a.extend(this.proto, c.proto), this.modules.push(b); + }, + defaults: { + disableOn: 0, + key: null, + midClick: !1, + mainClass: "", + preloader: !0, + focus: "", + closeOnContentClick: !1, + closeOnBgClick: !0, + closeBtnInside: !0, + showCloseBtn: !0, + enableEscapeKey: !0, + modal: !1, + alignTop: !1, + removalDelay: 0, + prependTo: null, + fixedContentPos: "auto", + fixedBgPos: "auto", + overflowY: "auto", + closeMarkup: "", + tClose: "Close (Esc)", + tLoading: "Loading...", + autoFocusLast: !0, + }, + }, + a.fn.magnificPopup = function(c) { + A(); + var d = a(this); + if ("string" == typeof c) { + if ("open" === c) { + var e, f = u ? d.data("magnificPopup") : d[0].magnificPopup, g = parseInt(arguments[1], 10) || 0; + f.items ? e = f.items[g] : (e = d, f.delegate && (e = e.find(f.delegate)), e = e.eq(g)), + b._openClick({ mfpEl: e }, d, f); + } else b.isOpen && b[c].apply(b, Array.prototype.slice.call(arguments, 1)); + } else c = a.extend(!0, {}, c), u ? d.data("magnificPopup", c) : d[0].magnificPopup = c, b.addGroup(d, c); + return d; + }; + var C, + D, + E, + F = "inline", + G = function() { + E && (D.after(E.addClass(C)).detach(), E = null); + }; + a.magnificPopup.registerModule(F, { + options: { hiddenClass: "hide", markup: "", tNotFound: "Content not found" }, + proto: { + initInline: function() { + b.types.push(F), + w(h + "." + F, function() { + G(); + }); + }, + getInline: function(c, d) { + if (G(), c.src) { + var e = b.st.inline, f = a(c.src); + if (f.length) { + var g = f[0].parentNode; + g && g.tagName + && (D || (C = e.hiddenClass, D = x(C), C = "mfp-" + C), E = f.after(D).detach().removeClass(C)), + b.updateStatus("ready"); + } else b.updateStatus("error", e.tNotFound), f = a("
"); + return c.inlineElement = f, f; + } + return b.updateStatus("ready"), b._parseMarkup(d, {}, c), d; + }, + }, + }); + var H, + I = "ajax", + J = function() { + H && a(document.body).removeClass(H); + }, + K = function() { + J(), b.req && b.req.abort(); + }; + a.magnificPopup.registerModule(I, { + options: { + settings: null, + cursor: "mfp-ajax-cur", + tError: "The content could not be loaded.", + }, + proto: { + initAjax: function() { + b.types.push(I), H = b.st.ajax.cursor, w(h + "." + I, K), w("BeforeChange." + I, K); + }, + getAjax: function(c) { + H && a(document.body).addClass(H), b.updateStatus("loading"); + var d = a.extend({ + url: c.src, + success: function(d, e, f) { + var g = { data: d, xhr: f }; + y("ParseAjax", g), + b.appendContent(a(g.data), I), + c.finished = !0, + J(), + b._setFocus(), + setTimeout(function() { + b.wrap.addClass(q); + }, 16), + b.updateStatus("ready"), + y("AjaxContentAdded"); + }, + error: function() { + J(), c.finished = c.loadError = !0, b.updateStatus("error", b.st.ajax.tError.replace("%url%", c.src)); + }, + }, b.st.ajax.settings); + return b.req = a.ajax(d), ""; + }, + }, + }); + var L, + M = function(c) { + if (c.data && void 0 !== c.data.title) return c.data.title; + var d = b.st.image.titleSrc; + if (d) { + if (a.isFunction(d)) return d.call(b, c); + if (c.el) return c.el.attr(d) || ""; + } + return ""; + }; + a.magnificPopup.registerModule("image", { + options: { + markup: + "
", + cursor: "mfp-zoom-out-cur", + titleSrc: "title", + verticalFit: !0, + tError: "The image could not be loaded.", + }, + proto: { + initImage: function() { + var c = b.st.image, d = ".image"; + b.types.push("image"), + w(m + d, function() { + "image" === b.currItem.type && c.cursor && a(document.body).addClass(c.cursor); + }), + w(h + d, function() { + c.cursor && a(document.body).removeClass(c.cursor), v.off("resize" + p); + }), + w("Resize" + d, b.resizeImage), + b.isLowIE && w("AfterChange", b.resizeImage); + }, + resizeImage: function() { + var a = b.currItem; + if (a && a.img && b.st.image.verticalFit) { + var c = 0; + b.isLowIE && (c = parseInt(a.img.css("padding-top"), 10) + parseInt(a.img.css("padding-bottom"), 10)), + a.img.css("max-height", b.wH - c); + } + }, + _onImageHasSize: function(a) { + a.img + && (a.hasSize = !0, + L && clearInterval(L), + a.isCheckingImgSize = !1, + y("ImageHasSize", a), + a.imgHidden && (b.content && b.content.removeClass("mfp-loading"), a.imgHidden = !1)); + }, + findImageSize: function(a) { + var c = 0, + d = a.img[0], + e = function(f) { + L && clearInterval(L), + L = setInterval(function() { + return d.naturalWidth > 0 + ? void b._onImageHasSize(a) + : (c > 200 && clearInterval(L), c++, void (3 === c ? e(10) : 40 === c ? e(50) : 100 === c && e(500))); + }, f); + }; + e(1); + }, + getImage: function(c, d) { + var e = 0, + f = function() { + c && (c.img[0].complete + ? (c.img.off(".mfploader"), + c === b.currItem && (b._onImageHasSize(c), b.updateStatus("ready")), + c.hasSize = !0, + c.loaded = !0, + y("ImageLoadComplete")) + : (e++, 200 > e ? setTimeout(f, 100) : g())); + }, + g = function() { + c + && (c.img.off(".mfploader"), + c === b.currItem && (b._onImageHasSize(c), b.updateStatus("error", h.tError.replace("%url%", c.src))), + c.hasSize = !0, + c.loaded = !0, + c.loadError = !0); + }, + h = b.st.image, + i = d.find(".mfp-img"); + if (i.length) { + var j = document.createElement("img"); + j.className = "mfp-img", + c.el && c.el.find("img").length && (j.alt = c.el.find("img").attr("alt")), + c.img = a(j).on("load.mfploader", f).on("error.mfploader", g), + j.src = c.src, + i.is("img") && (c.img = c.img.clone()), + j = c.img[0], + j.naturalWidth > 0 ? c.hasSize = !0 : j.width || (c.hasSize = !1); + } + return b._parseMarkup(d, { title: M(c), img_replaceWith: c.img }, c), + b.resizeImage(), + c.hasSize + ? (L && clearInterval(L), + c.loadError + ? (d.addClass("mfp-loading"), b.updateStatus("error", h.tError.replace("%url%", c.src))) + : (d.removeClass("mfp-loading"), b.updateStatus("ready")), + d) + : (b.updateStatus("loading"), + c.loading = !0, + c.hasSize || (c.imgHidden = !0, d.addClass("mfp-loading"), b.findImageSize(c)), + d); + }, + }, + }); + var N, + O = function() { + return void 0 === N && (N = void 0 !== document.createElement("p").style.MozTransform), N; + }; + a.magnificPopup.registerModule("zoom", { + options: { + enabled: !1, + easing: "ease-in-out", + duration: 300, + opener: function(a) { + return a.is("img") ? a : a.find("img"); + }, + }, + proto: { + initZoom: function() { + var a, c = b.st.zoom, d = ".zoom"; + if (c.enabled && b.supportsTransition) { + var e, + f, + g = c.duration, + j = function(a) { + var b = a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"), + d = "all " + c.duration / 1e3 + "s " + c.easing, + e = { position: "fixed", zIndex: 9999, left: 0, top: 0, "-webkit-backface-visibility": "hidden" }, + f = "transition"; + return e["-webkit-" + f] = + e["-moz-" + f] = + e["-o-" + f] = + e[f] = + d, + b.css(e), + b; + }, + k = function() { + b.content.css("visibility", "visible"); + }; + w("BuildControls" + d, function() { + if (b._allowZoom()) { + if (clearTimeout(e), b.content.css("visibility", "hidden"), a = b._getItemToZoom(), !a) return void k(); + f = j(a), + f.css(b._getOffset()), + b.wrap.append(f), + e = setTimeout(function() { + f.css(b._getOffset(!0)), + e = setTimeout(function() { + k(), + setTimeout(function() { + f.remove(), a = f = null, y("ZoomAnimationEnded"); + }, 16); + }, g); + }, 16); + } + }), + w(i + d, function() { + if (b._allowZoom()) { + if (clearTimeout(e), b.st.removalDelay = g, !a) { + if (a = b._getItemToZoom(), !a) return; + f = j(a); + } + f.css(b._getOffset(!0)), + b.wrap.append(f), + b.content.css("visibility", "hidden"), + setTimeout(function() { + f.css(b._getOffset()); + }, 16); + } + }), + w(h + d, function() { + b._allowZoom() && (k(), f && f.remove(), a = null); + }); + } + }, + _allowZoom: function() { + return "image" === b.currItem.type; + }, + _getItemToZoom: function() { + return b.currItem.hasSize ? b.currItem.img : !1; + }, + _getOffset: function(c) { + var d; + d = c ? b.currItem.img : b.st.zoom.opener(b.currItem.el || b.currItem); + var e = d.offset(), f = parseInt(d.css("padding-top"), 10), g = parseInt(d.css("padding-bottom"), 10); + e.top -= a(window).scrollTop() - f; + var h = { width: d.width(), height: (u ? d.innerHeight() : d[0].offsetHeight) - g - f }; + return O() + ? h["-moz-transform"] = h.transform = "translate(" + e.left + "px," + e.top + "px)" + : (h.left = e.left, h.top = e.top), + h; + }, + }, + }); + var P = "iframe", + Q = "//about:blank", + R = function(a) { + if (b.currTemplate[P]) { + var c = b.currTemplate[P].find("iframe"); + c.length && (a || (c[0].src = Q), b.isIE8 && c.css("display", a ? "block" : "none")); + } + }; + a.magnificPopup.registerModule(P, { + options: { + markup: + "
", + srcAction: "iframe_src", + patterns: { + youtube: { index: "youtube.com", id: "v=", src: "//www.youtube.com/embed/%id%?autoplay=1" }, + vimeo: { index: "vimeo.com/", id: "/", src: "//player.vimeo.com/video/%id%?autoplay=1" }, + gmaps: { index: "//maps.google.", src: "%id%&output=embed" }, + }, + }, + proto: { + initIframe: function() { + b.types.push(P), + w("BeforeChange", function(a, b, c) { + b !== c && (b === P ? R() : c === P && R(!0)); + }), + w(h + "." + P, function() { + R(); + }); + }, + getIframe: function(c, d) { + var e = c.src, f = b.st.iframe; + a.each(f.patterns, function() { + return e.indexOf(this.index) > -1 + ? (this.id && (e = "string" == typeof this.id + ? e.substr(e.lastIndexOf(this.id) + this.id.length, e.length) + : this.id.call(this, e)), + e = this.src.replace("%id%", e), + !1) + : void 0; + }); + var g = {}; + return f.srcAction && (g[f.srcAction] = e), b._parseMarkup(d, g, c), b.updateStatus("ready"), d; + }, + }, + }); + var S = function(a) { + var c = b.items.length; + return a > c - 1 ? a - c : 0 > a ? c + a : a; + }, + T = function(a, b, c) { + return a.replace(/%curr%/gi, b + 1).replace(/%total%/gi, c); + }; + a.magnificPopup.registerModule("gallery", { + options: { + enabled: !1, + arrowMarkup: "", + preload: [0, 2], + navigateByImgClick: !0, + arrows: !0, + tPrev: "Previous (Left arrow key)", + tNext: "Next (Right arrow key)", + tCounter: "%curr% of %total%", + }, + proto: { + initGallery: function() { + var c = b.st.gallery, e = ".mfp-gallery"; + return b.direction = !0, + c && c.enabled + ? (f += " mfp-gallery", + w(m + e, function() { + c.navigateByImgClick && b.wrap.on("click" + e, ".mfp-img", function() { + return b.items.length > 1 ? (b.next(), !1) : void 0; + }), + d.on("keydown" + e, function(a) { + 37 === a.keyCode ? b.prev() : 39 === a.keyCode && b.next(); + }); + }), + w("UpdateStatus" + e, function(a, c) { + c.text && (c.text = T(c.text, b.currItem.index, b.items.length)); + }), + w(l + e, function(a, d, e, f) { + var g = b.items.length; + e.counter = g > 1 ? T(c.tCounter, f.index, g) : ""; + }), + w("BuildControls" + e, function() { + if (b.items.length > 1 && c.arrows && !b.arrowLeft) { + var d = c.arrowMarkup, + e = b.arrowLeft = a(d.replace(/%title%/gi, c.tPrev).replace(/%dir%/gi, "left")).addClass(s), + f = b.arrowRight = a(d.replace(/%title%/gi, c.tNext).replace(/%dir%/gi, "right")).addClass(s); + e.click(function() { + b.prev(); + }), + f.click(function() { + b.next(); + }), + b.container.append(e.add(f)); + } + }), + w(n + e, function() { + b._preloadTimeout && clearTimeout(b._preloadTimeout), + b._preloadTimeout = setTimeout(function() { + b.preloadNearbyImages(), b._preloadTimeout = null; + }, 16); + }), + void w(h + e, function() { + d.off(e), b.wrap.off("click" + e), b.arrowRight = b.arrowLeft = null; + })) + : !1; + }, + next: function() { + b.direction = !0, b.index = S(b.index + 1), b.updateItemHTML(); + }, + prev: function() { + b.direction = !1, b.index = S(b.index - 1), b.updateItemHTML(); + }, + goTo: function(a) { + b.direction = a >= b.index, b.index = a, b.updateItemHTML(); + }, + preloadNearbyImages: function() { + var a, c = b.st.gallery.preload, d = Math.min(c[0], b.items.length), e = Math.min(c[1], b.items.length); + for (a = 1; a <= (b.direction ? e : d); a++) b._preloadItem(b.index + a); + for (a = 1; a <= (b.direction ? d : e); a++) b._preloadItem(b.index - a); + }, + _preloadItem: function(c) { + if (c = S(c), !b.items[c].preloaded) { + var d = b.items[c]; + d.parsed || (d = b.parseEl(c)), + y("LazyLoad", d), + "image" === d.type && (d.img = a("").on("load.mfploader", function() { + d.hasSize = !0; + }).on("error.mfploader", function() { + d.hasSize = !0, d.loadError = !0, y("LazyLoadError", d); + }).attr("src", d.src)), + d.preloaded = !0; + } + }, + }, + }); + var U = "retina"; + a.magnificPopup.registerModule(U, { + options: { + replaceSrc: function(a) { + return a.src.replace(/\.\w+$/, function(a) { + return "@2x" + a; + }); + }, + ratio: 1, + }, + proto: { + initRetina: function() { + if (window.devicePixelRatio > 1) { + var a = b.st.retina, c = a.ratio; + c = isNaN(c) ? c() : c, + c > 1 && (w("ImageHasSize." + U, function(a, b) { + b.img.css({ "max-width": b.img[0].naturalWidth / c, width: "100%" }); + }), + w("ElementParse." + U, function(b, d) { + d.src = a.replaceSrc(d, c); + })); + } + }, + }, + }), A(); +}); + +// Generated by CoffeeScript 1.6.2 +/* +jQuery Waypoints - v2.0.3 +Copyright (c) 2011-2013 Caleb Troughton +Dual licensed under the MIT license and GPL license. +https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt +*/ +(function() { + var t = [].indexOf || function(t) { + for (var e = 0, n = this.length; e < n; e++) if (e in this && this[e] === t) return e; + return -1; + }, + e = [].slice; + (function(t, e) { + if (typeof define === "function" && define.amd) { + return define("waypoints", ["jquery"], function(n) { + return e(n, t); + }); + } else return e(t.jQuery, t); + })(this, function(n, r) { + var i, o, l, s, f, u, a, c, h, d, p, y, v, w, g, m; + i = n(r); + c = t.call(r, "ontouchstart") >= 0; + s = { horizontal: {}, vertical: {} }; + f = 1; + a = {}; + u = "waypoints-context-id"; + p = "resize.waypoints"; + y = "scroll.waypoints"; + v = 1; + w = "waypoints-waypoint-ids"; + g = "waypoint"; + m = "waypoints"; + o = function() { + function t(t) { + var e = this; + this.$element = t; + this.element = t[0]; + this.didResize = false; + this.didScroll = false; + this.id = "context" + f++; + this.oldScroll = { x: t.scrollLeft(), y: t.scrollTop() }; + this.waypoints = { horizontal: {}, vertical: {} }; + t.data(u, this.id); + a[this.id] = this; + t.bind(y, function() { + var t; + if (!(e.didScroll || c)) { + e.didScroll = true; + t = function() { + e.doScroll(); + return e.didScroll = false; + }; + return r.setTimeout(t, n[m].settings.scrollThrottle); + } + }); + t.bind(p, function() { + var t; + if (!e.didResize) { + e.didResize = true; + t = function() { + n[m]("refresh"); + return e.didResize = false; + }; + return r.setTimeout(t, n[m].settings.resizeThrottle); + } + }); + } + t.prototype.doScroll = function() { + var t, e = this; + t = { + horizontal: { + newScroll: this.$element.scrollLeft(), + oldScroll: this.oldScroll.x, + forward: "right", + backward: "left", + }, + vertical: { + newScroll: this.$element.scrollTop(), + oldScroll: this.oldScroll.y, + forward: "down", + backward: "up", + }, + }; + if (c && (!t.vertical.oldScroll || !t.vertical.newScroll)) n[m]("refresh"); + n.each(t, function(t, r) { + var i, o, l; + l = []; + o = r.newScroll > r.oldScroll; + i = o ? r.forward : r.backward; + n.each(e.waypoints[t], function(t, e) { + var n, i; + if (r.oldScroll < (n = e.offset) && n <= r.newScroll) return l.push(e); + else if (r.newScroll < (i = e.offset) && i <= r.oldScroll) return l.push(e); + }); + l.sort(function(t, e) { + return t.offset - e.offset; + }); + if (!o) l.reverse(); + return n.each(l, function(t, e) { + if (e.options.continuous || t === l.length - 1) return e.trigger([i]); + }); + }); + return this.oldScroll = { x: t.horizontal.newScroll, y: t.vertical.newScroll }; + }; + t.prototype.refresh = function() { + var t, e, r, i = this; + r = n.isWindow(this.element); + e = this.$element.offset(); + this.doScroll(); + t = { + horizontal: { + contextOffset: r ? 0 : e.left, + contextScroll: r ? 0 : this.oldScroll.x, + contextDimension: this.$element.width(), + oldScroll: this.oldScroll.x, + forward: "right", + backward: "left", + offsetProp: "left", + }, + vertical: { + contextOffset: r ? 0 : e.top, + contextScroll: r ? 0 : this.oldScroll.y, + contextDimension: r ? n[m]("viewportHeight") : this.$element.height(), + oldScroll: this.oldScroll.y, + forward: "down", + backward: "up", + offsetProp: "top", + }, + }; + return n.each(t, function(t, e) { + return n.each(i.waypoints[t], function(t, r) { + var i, o, l, s, f; + i = r.options.offset; + l = r.offset; + o = n.isWindow(r.element) ? 0 : r.$element.offset()[e.offsetProp]; + if (n.isFunction(i)) i = i.apply(r.element); + else if (typeof i === "string") { + i = parseFloat(i); + if (r.options.offset.indexOf("%") > -1) i = Math.ceil(e.contextDimension * i / 100); + } + r.offset = o - e.contextOffset + e.contextScroll - i; + if (r.options.onlyOnScroll && l != null || !r.enabled) return; + if (l !== null && l < (s = e.oldScroll) && s <= r.offset) return r.trigger([e.backward]); + else if (l !== null && l > (f = e.oldScroll) && f >= r.offset) return r.trigger([e.forward]); + else if (l === null && e.oldScroll >= r.offset) return r.trigger([e.forward]); + }); + }); + }; + t.prototype.checkEmpty = function() { + if (n.isEmptyObject(this.waypoints.horizontal) && n.isEmptyObject(this.waypoints.vertical)) { + this.$element.unbind([p, y].join(" ")); + return delete a[this.id]; + } + }; + return t; + }(); + l = function() { + function t(t, e, r) { + var i, o; + r = n.extend({}, n.fn[g].defaults, r); + if (r.offset === "bottom-in-view") { + r.offset = function() { + var t; + t = n[m]("viewportHeight"); + if (!n.isWindow(e.element)) t = e.$element.height(); + return t - n(this).outerHeight(); + }; + } + this.$element = t; + this.element = t[0]; + this.axis = r.horizontal ? "horizontal" : "vertical"; + this.callback = r.handler; + this.context = e; + this.enabled = r.enabled; + this.id = "waypoints" + v++; + this.offset = null; + this.options = r; + e.waypoints[this.axis][this.id] = this; + s[this.axis][this.id] = this; + i = (o = t.data(w)) != null ? o : []; + i.push(this.id); + t.data(w, i); + } + t.prototype.trigger = function(t) { + if (!this.enabled) return; + if (this.callback != null) this.callback.apply(this.element, t); + if (this.options.triggerOnce) return this.destroy(); + }; + t.prototype.disable = function() { + return this.enabled = false; + }; + t.prototype.enable = function() { + this.context.refresh(); + return this.enabled = true; + }; + t.prototype.destroy = function() { + delete s[this.axis][this.id]; + delete this.context.waypoints[this.axis][this.id]; + return this.context.checkEmpty(); + }; + t.getWaypointsByElement = function(t) { + var e, r; + r = n(t).data(w); + if (!r) return []; + e = n.extend({}, s.horizontal, s.vertical); + return n.map(r, function(t) { + return e[t]; + }); + }; + return t; + }(); + d = { + init: function(t, e) { + var r; + if (e == null) e = {}; + if ((r = e.handler) == null) e.handler = t; + this.each(function() { + var t, r, i, s; + t = n(this); + i = (s = e.context) != null ? s : n.fn[g].defaults.context; + if (!n.isWindow(i)) i = t.closest(i); + i = n(i); + r = a[i.data(u)]; + if (!r) r = new o(i); + return new l(t, r, e); + }); + n[m]("refresh"); + return this; + }, + disable: function() { + return d._invoke(this, "disable"); + }, + enable: function() { + return d._invoke(this, "enable"); + }, + destroy: function() { + return d._invoke(this, "destroy"); + }, + prev: function(t, e) { + return d._traverse.call(this, t, e, function(t, e, n) { + if (e > 0) return t.push(n[e - 1]); + }); + }, + next: function(t, e) { + return d._traverse.call(this, t, e, function(t, e, n) { + if (e < n.length - 1) return t.push(n[e + 1]); + }); + }, + _traverse: function(t, e, i) { + var o, l; + if (t == null) t = "vertical"; + if (e == null) e = r; + l = h.aggregate(e); + o = []; + this.each(function() { + var e; + e = n.inArray(this, l[t]); + return i(o, e, l[t]); + }); + return this.pushStack(o); + }, + _invoke: function(t, e) { + t.each(function() { + var t; + t = l.getWaypointsByElement(this); + return n.each(t, function(t, n) { + n[e](); + return true; + }); + }); + return this; + }, + }; + n.fn[g] = function() { + var t, r; + r = arguments[0], t = 2 <= arguments.length ? e.call(arguments, 1) : []; + if (d[r]) return d[r].apply(this, t); + else if (n.isFunction(r)) return d.init.apply(this, arguments); + else if (n.isPlainObject(r)) return d.init.apply(this, [null, r]); + else if (!r) return n.error("jQuery Waypoints needs a callback function or handler option."); + else return n.error("The " + r + " method does not exist in jQuery Waypoints."); + }; + n.fn[g].defaults = { + context: r, + continuous: true, + enabled: true, + horizontal: false, + offset: 0, + triggerOnce: false, + }; + h = { + refresh: function() { + return n.each(a, function(t, e) { + return e.refresh(); + }); + }, + viewportHeight: function() { + var t; + return (t = r.innerHeight) != null ? t : i.height(); + }, + aggregate: function(t) { + var e, r, i; + e = s; + if (t) e = (i = a[n(t).data(u)]) != null ? i.waypoints : void 0; + if (!e) return []; + r = { horizontal: [], vertical: [] }; + n.each(r, function(t, i) { + n.each(e[t], function(t, e) { + return i.push(e); + }); + i.sort(function(t, e) { + return t.offset - e.offset; + }); + r[t] = n.map(i, function(t) { + return t.element; + }); + return r[t] = n.unique(r[t]); + }); + return r; + }, + above: function(t) { + if (t == null) t = r; + return h._filter(t, "vertical", function(t, e) { + return e.offset <= t.oldScroll.y; + }); + }, + below: function(t) { + if (t == null) t = r; + return h._filter(t, "vertical", function(t, e) { + return e.offset > t.oldScroll.y; + }); + }, + left: function(t) { + if (t == null) t = r; + return h._filter(t, "horizontal", function(t, e) { + return e.offset <= t.oldScroll.x; + }); + }, + right: function(t) { + if (t == null) t = r; + return h._filter(t, "horizontal", function(t, e) { + return e.offset > t.oldScroll.x; + }); + }, + enable: function() { + return h._invoke("enable"); + }, + disable: function() { + return h._invoke("disable"); + }, + destroy: function() { + return h._invoke("destroy"); + }, + extendFn: function(t, e) { + return d[t] = e; + }, + _invoke: function(t) { + var e; + e = n.extend({}, s.vertical, s.horizontal); + return n.each(e, function(e, n) { + n[t](); + return true; + }); + }, + _filter: function(t, e, r) { + var i, o; + i = a[n(t).data(u)]; + if (!i) return []; + o = []; + n.each(i.waypoints[e], function(t, e) { + if (r(i, e)) return o.push(e); + }); + o.sort(function(t, e) { + return t.offset - e.offset; + }); + return n.map(o, function(t) { + return t.element; + }); + }, + }; + n[m] = function() { + var t, n; + n = arguments[0], t = 2 <= arguments.length ? e.call(arguments, 1) : []; + if (h[n]) return h[n].apply(null, t); + else return h.aggregate.call(null, n); + }; + n[m].settings = { resizeThrottle: 100, scrollThrottle: 30 }; + return i.load(function() { + return n[m]("refresh"); + }); + }); +}).call(this); + +/*! + * imagesLoaded PACKAGED v4.1.1 + * JavaScript is all like "You images are done yet or what?" + * MIT License + */ + +!function(t, e) { + "function" == typeof define && define.amd + ? define("ev-emitter/ev-emitter", e) + : "object" == typeof module && module.exports + ? module.exports = e() + : t.EvEmitter = e(); +}("undefined" != typeof window ? window : this, function() { + function t() {} + var e = t.prototype; + return e.on = function(t, e) { + if (t && e) { + var i = this._events = this._events || {}, n = i[t] = i[t] || []; + return -1 == n.indexOf(e) && n.push(e), this; + } + }, + e.once = function(t, e) { + if (t && e) { + this.on(t, e); + var i = this._onceEvents = this._onceEvents || {}, n = i[t] = i[t] || {}; + return n[e] = !0, this; + } + }, + e.off = function(t, e) { + var i = this._events && this._events[t]; + if (i && i.length) { + var n = i.indexOf(e); + return -1 != n && i.splice(n, 1), this; + } + }, + e.emitEvent = function(t, e) { + var i = this._events && this._events[t]; + if (i && i.length) { + var n = 0, o = i[n]; + e = e || []; + for (var r = this._onceEvents && this._onceEvents[t]; o;) { + var s = r && r[o]; + s && (this.off(t, o), delete r[o]), o.apply(this, e), n += s ? 0 : 1, o = i[n]; + } + return this; + } + }, + t; +}), + function(t, e) { + "use strict"; + "function" == typeof define && define.amd + ? define(["ev-emitter/ev-emitter"], function(i) { + return e(t, i); + }) + : "object" == typeof module && module.exports + ? module.exports = e(t, require("ev-emitter")) + : t.imagesLoaded = e(t, t.EvEmitter); + }(window, function(t, e) { + function i(t, e) { + for (var i in e) t[i] = e[i]; + return t; + } + function n(t) { + var e = []; + if (Array.isArray(t)) e = t; + else if ("number" == typeof t.length) for (var i = 0; i < t.length; i++) e.push(t[i]); + else e.push(t); + return e; + } + function o(t, e, r) { + return this instanceof o + ? ("string" == typeof t && (t = document.querySelectorAll(t)), + this.elements = n(t), + this.options = i({}, this.options), + "function" == typeof e ? r = e : i(this.options, e), + r && this.on("always", r), + this.getImages(), + h && (this.jqDeferred = new h.Deferred()), + void setTimeout(function() { + this.check(); + }.bind(this))) + : new o(t, e, r); + } + function r(t) { + this.img = t; + } + function s(t, e) { + this.url = t, this.element = e, this.img = new Image(); + } + var h = t.jQuery, a = t.console; + o.prototype = Object.create(e.prototype), + o.prototype.options = {}, + o.prototype.getImages = function() { + this.images = [], this.elements.forEach(this.addElementImages, this); + }, + o.prototype.addElementImages = function(t) { + "IMG" == t.nodeName && this.addImage(t), this.options.background === !0 && this.addElementBackgroundImages(t); + var e = t.nodeType; + if (e && d[e]) { + for (var i = t.querySelectorAll("img"), n = 0; n < i.length; n++) { + var o = i[n]; + this.addImage(o); + } + if ("string" == typeof this.options.background) { + var r = t.querySelectorAll(this.options.background); + for (n = 0; n < r.length; n++) { + var s = r[n]; + this.addElementBackgroundImages(s); + } + } + } + }; + var d = { 1: !0, 9: !0, 11: !0 }; + return o.prototype.addElementBackgroundImages = function(t) { + var e = getComputedStyle(t); + if (e) { + for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(e.backgroundImage); null !== n;) { + var o = n && n[2]; + o && this.addBackground(o, t), n = i.exec(e.backgroundImage); + } + } + }, + o.prototype.addImage = function(t) { + var e = new r(t); + this.images.push(e); + }, + o.prototype.addBackground = function(t, e) { + var i = new s(t, e); + this.images.push(i); + }, + o.prototype.check = function() { + function t(t, i, n) { + setTimeout(function() { + e.progress(t, i, n); + }); + } + var e = this; + return this.progressedCount = 0, + this.hasAnyBroken = !1, + this.images.length + ? void this.images.forEach(function(e) { + e.once("progress", t), e.check(); + }) + : void this.complete(); + }, + o.prototype.progress = function(t, e, i) { + this.progressedCount++, + this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, + this.emitEvent("progress", [this, t, e]), + this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), + this.progressedCount == this.images.length && this.complete(), + this.options.debug && a && a.log("progress: " + i, t, e); + }, + o.prototype.complete = function() { + var t = this.hasAnyBroken ? "fail" : "done"; + if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) { + var e = this.hasAnyBroken ? "reject" : "resolve"; + this.jqDeferred[e](this); + } + }, + r.prototype = Object.create(e.prototype), + r.prototype.check = function() { + var t = this.getIsImageComplete(); + return t + ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") + : (this.proxyImage = new Image(), + this.proxyImage.addEventListener("load", this), + this.proxyImage.addEventListener("error", this), + this.img.addEventListener("load", this), + this.img.addEventListener("error", this), + void (this.proxyImage.src = this.img.src)); + }, + r.prototype.getIsImageComplete = function() { + return this.img.complete && void 0 !== this.img.naturalWidth; + }, + r.prototype.confirm = function(t, e) { + this.isLoaded = t, this.emitEvent("progress", [this, this.img, e]); + }, + r.prototype.handleEvent = function(t) { + var e = "on" + t.type; + this[e] && this[e](t); + }, + r.prototype.onload = function() { + this.confirm(!0, "onload"), this.unbindEvents(); + }, + r.prototype.onerror = function() { + this.confirm(!1, "onerror"), this.unbindEvents(); + }, + r.prototype.unbindEvents = function() { + this.proxyImage.removeEventListener("load", this), + this.proxyImage.removeEventListener("error", this), + this.img.removeEventListener("load", this), + this.img.removeEventListener("error", this); + }, + s.prototype = Object.create(r.prototype), + s.prototype.check = function() { + this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url; + var t = this.getIsImageComplete(); + t && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents()); + }, + s.prototype.unbindEvents = function() { + this.img.removeEventListener("load", this), this.img.removeEventListener("error", this); + }, + s.prototype.confirm = function(t, e) { + this.isLoaded = t, this.emitEvent("progress", [this, this.element, e]); + }, + o.makeJQueryPlugin = function(e) { + e = e || t.jQuery, + e && (h = e, + h.fn.imagesLoaded = function(t, e) { + var i = new o(this, t, e); + return i.jqDeferred.promise(h(this)); + }); + }, + o.makeJQueryPlugin(), + o; + }); + +/*! + * Isotope PACKAGED v2.2.2 + * + * Licensed GPLv3 for open source use + * or Isotope Commercial License for commercial use + * + * http://isotope.metafizzy.co + * Copyright 2015 Metafizzy + */ + +!function(a) { + function b() {} + function c(a) { + function c(b) { + b.prototype.option || (b.prototype.option = function(b) { + a.isPlainObject(b) && (this.options = a.extend(!0, this.options, b)); + }); + } + function e(b, c) { + a.fn[b] = function(e) { + if ("string" == typeof e) { + for (var g = d.call(arguments, 1), h = 0, i = this.length; i > h; h++) { + var j = this[h], k = a.data(j, b); + if (k) { + if (a.isFunction(k[e]) && "_" !== e.charAt(0)) { + var l = k[e].apply(k, g); + if (void 0 !== l) return l; + } else f("no such method '" + e + "' for " + b + " instance"); + } else f("cannot call methods on " + b + " prior to initialization; attempted to call '" + e + "'"); + } + return this; + } + return this.each(function() { + var d = a.data(this, b); + d ? (d.option(e), d._init()) : (d = new c(this, e), a.data(this, b, d)); + }); + }; + } + if (a) { + var f = "undefined" == typeof console ? b : function(a) { + console.error(a); + }; + return a.bridget = function(a, b) { + c(b), e(a, b); + }, + a.bridget; + } + } + var d = Array.prototype.slice; + "function" == typeof define && define.amd + ? define("jquery-bridget/jquery.bridget", ["jquery"], c) + : c("object" == typeof exports ? require("jquery") : a.jQuery); +}(window), + function(a) { + function b(b) { + var c = a.event; + return c.target = c.target || c.srcElement || b, c; + } + var c = document.documentElement, d = function() {}; + c.addEventListener + ? d = function(a, b, c) { + a.addEventListener(b, c, !1); + } + : c.attachEvent && (d = function(a, c, d) { + a[c + d] = d.handleEvent + ? function() { + var c = b(a); + d.handleEvent.call(d, c); + } + : function() { + var c = b(a); + d.call(a, c); + }, a.attachEvent("on" + c, a[c + d]); + }); + var e = function() {}; + c.removeEventListener + ? e = function(a, b, c) { + a.removeEventListener(b, c, !1); + } + : c.detachEvent && (e = function(a, b, c) { + a.detachEvent("on" + b, a[b + c]); + try { + delete a[b + c]; + } catch (d) { + a[b + c] = void 0; + } + }); + var f = { bind: d, unbind: e }; + "function" == typeof define && define.amd + ? define("eventie/eventie", f) + : "object" == typeof exports + ? module.exports = f + : a.eventie = f; + }(window), + function() { + "use strict"; + function a() {} + function b(a, b) { + for (var c = a.length; c--;) if (a[c].listener === b) return c; + return -1; + } + function c(a) { + return function() { + return this[a].apply(this, arguments); + }; + } + var d = a.prototype, e = this, f = e.EventEmitter; + d.getListeners = function(a) { + var b, c, d = this._getEvents(); + if (a instanceof RegExp) { + b = {}; + for (c in d) d.hasOwnProperty(c) && a.test(c) && (b[c] = d[c]); + } else b = d[a] || (d[a] = []); + return b; + }, + d.flattenListeners = function(a) { + var b, c = []; + for (b = 0; b < a.length; b += 1) c.push(a[b].listener); + return c; + }, + d.getListenersAsObject = function(a) { + var b, c = this.getListeners(a); + return c instanceof Array && (b = {}, b[a] = c), b || c; + }, + d.addListener = function(a, c) { + var d, e = this.getListenersAsObject(a), f = "object" == typeof c; + for (d in e) e.hasOwnProperty(d) && -1 === b(e[d], c) && e[d].push(f ? c : { listener: c, once: !1 }); + return this; + }, + d.on = c("addListener"), + d.addOnceListener = function(a, b) { + return this.addListener(a, { listener: b, once: !0 }); + }, + d.once = c("addOnceListener"), + d.defineEvent = function(a) { + return this.getListeners(a), this; + }, + d.defineEvents = function(a) { + for (var b = 0; b < a.length; b += 1) this.defineEvent(a[b]); + return this; + }, + d.removeListener = function(a, c) { + var d, e, f = this.getListenersAsObject(a); + for (e in f) f.hasOwnProperty(e) && (d = b(f[e], c), -1 !== d && f[e].splice(d, 1)); + return this; + }, + d.off = c("removeListener"), + d.addListeners = function(a, b) { + return this.manipulateListeners(!1, a, b); + }, + d.removeListeners = function(a, b) { + return this.manipulateListeners(!0, a, b); + }, + d.manipulateListeners = function(a, b, c) { + var d, e, f = a ? this.removeListener : this.addListener, g = a ? this.removeListeners : this.addListeners; + if ("object" != typeof b || b instanceof RegExp) for (d = c.length; d--;) f.call(this, b, c[d]); + else {for (d in b) {b.hasOwnProperty(d) && (e = b[d]) + && ("function" == typeof e ? f.call(this, d, e) : g.call(this, d, e));}} + return this; + }, + d.removeEvent = function(a) { + var b, c = typeof a, d = this._getEvents(); + if ("string" === c) delete d[a]; + else if (a instanceof RegExp) for (b in d) d.hasOwnProperty(b) && a.test(b) && delete d[b]; + else delete this._events; + return this; + }, + d.removeAllListeners = c("removeEvent"), + d.emitEvent = function(a, b) { + var c, d, e, f, g = this.getListenersAsObject(a); + for (e in g) { + if (g.hasOwnProperty(e)) { + for (d = g[e].length; d--;) {c = g[e][d], + c.once === !0 && this.removeListener(a, c.listener), + f = c.listener.apply(this, b || []), + f === this._getOnceReturnValue() && this.removeListener(a, c.listener);} + } + } + return this; + }, + d.trigger = c("emitEvent"), + d.emit = function(a) { + var b = Array.prototype.slice.call(arguments, 1); + return this.emitEvent(a, b); + }, + d.setOnceReturnValue = function(a) { + return this._onceReturnValue = a, this; + }, + d._getOnceReturnValue = function() { + return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0; + }, + d._getEvents = function() { + return this._events || (this._events = {}); + }, + a.noConflict = function() { + return e.EventEmitter = f, a; + }, + "function" == typeof define && define.amd + ? define("eventEmitter/EventEmitter", [], function() { + return a; + }) + : "object" == typeof module && module.exports + ? module.exports = a + : e.EventEmitter = a; + }.call(this), + function(a) { + function b(a) { + if (a) { + if ("string" == typeof d[a]) return a; + a = a.charAt(0).toUpperCase() + a.slice(1); + for (var b, e = 0, f = c.length; f > e; e++) if (b = c[e] + a, "string" == typeof d[b]) return b; + } + } + var c = "Webkit Moz ms Ms O".split(" "), d = document.documentElement.style; + "function" == typeof define && define.amd + ? define("get-style-property/get-style-property", [], function() { + return b; + }) + : "object" == typeof exports + ? module.exports = b + : a.getStyleProperty = b; + }(window), + function(a, b) { + function c(a) { + var b = parseFloat(a), c = -1 === a.indexOf("%") && !isNaN(b); + return c && b; + } + function d() {} + function e() { + for ( + var a = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, + b = 0, + c = h.length; + c > b; + b++ + ) { + var d = h[b]; + a[d] = 0; + } + return a; + } + function f(b) { + function d() { + if (!m) { + m = !0; + var d = a.getComputedStyle; + if ( + j = function() { + var a = d + ? function(a) { + return d(a, null); + } + : function(a) { + return a.currentStyle; + }; + return function(b) { + var c = a(b); + return c + || g( + "Style returned " + c + + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1", + ), + c; + }; + }(), k = b("boxSizing") + ) { + var e = document.createElement("div"); + e.style.width = "200px", + e.style.padding = "1px 2px 3px 4px", + e.style.borderStyle = "solid", + e.style.borderWidth = "1px 2px 3px 4px", + e.style[k] = "border-box"; + var f = document.body || document.documentElement; + f.appendChild(e); + var h = j(e); + l = 200 === c(h.width), f.removeChild(e); + } + } + } + function f(a) { + if (d(), "string" == typeof a && (a = document.querySelector(a)), a && "object" == typeof a && a.nodeType) { + var b = j(a); + if ("none" === b.display) return e(); + var f = {}; + f.width = a.offsetWidth, f.height = a.offsetHeight; + for (var g = f.isBorderBox = !(!k || !b[k] || "border-box" !== b[k]), m = 0, n = h.length; n > m; m++) { + var o = h[m], p = b[o]; + p = i(a, p); + var q = parseFloat(p); + f[o] = isNaN(q) ? 0 : q; + } + var r = f.paddingLeft + f.paddingRight, + s = f.paddingTop + f.paddingBottom, + t = f.marginLeft + f.marginRight, + u = f.marginTop + f.marginBottom, + v = f.borderLeftWidth + f.borderRightWidth, + w = f.borderTopWidth + f.borderBottomWidth, + x = g && l, + y = c(b.width); + y !== !1 && (f.width = y + (x ? 0 : r + v)); + var z = c(b.height); + return z !== !1 && (f.height = z + (x ? 0 : s + w)), + f.innerWidth = f.width - (r + v), + f.innerHeight = f.height - (s + w), + f.outerWidth = f.width + t, + f.outerHeight = f.height + u, + f; + } + } + function i(b, c) { + if (a.getComputedStyle || -1 === c.indexOf("%")) return c; + var d = b.style, e = d.left, f = b.runtimeStyle, g = f && f.left; + return g && (f.left = b.currentStyle.left), d.left = c, c = d.pixelLeft, d.left = e, g && (f.left = g), c; + } + var j, k, l, m = !1; + return f; + } + var g = "undefined" == typeof console ? d : function(a) { + console.error(a); + }, + h = [ + "paddingLeft", + "paddingRight", + "paddingTop", + "paddingBottom", + "marginLeft", + "marginRight", + "marginTop", + "marginBottom", + "borderLeftWidth", + "borderRightWidth", + "borderTopWidth", + "borderBottomWidth", + ]; + "function" == typeof define && define.amd + ? define("get-size/get-size", ["get-style-property/get-style-property"], f) + : "object" == typeof exports + ? module.exports = f(require("desandro-get-style-property")) + : a.getSize = f(a.getStyleProperty); + }(window), + function(a) { + function b(a) { + "function" == typeof a && (b.isReady ? a() : g.push(a)); + } + function c(a) { + var c = "readystatechange" === a.type && "complete" !== f.readyState; + b.isReady || c || d(); + } + function d() { + b.isReady = !0; + for (var a = 0, c = g.length; c > a; a++) { + var d = g[a]; + d(); + } + } + function e(e) { + return "complete" === f.readyState + ? d() + : (e.bind(f, "DOMContentLoaded", c), e.bind(f, "readystatechange", c), e.bind(a, "load", c)), + b; + } + var f = a.document, g = []; + b.isReady = !1, + "function" == typeof define && define.amd + ? define("doc-ready/doc-ready", ["eventie/eventie"], e) + : "object" == typeof exports + ? module.exports = e(require("eventie")) + : a.docReady = e(a.eventie); + }(window), + function(a) { + "use strict"; + function b(a, b) { + return a[g](b); + } + function c(a) { + if (!a.parentNode) { + var b = document.createDocumentFragment(); + b.appendChild(a); + } + } + function d(a, b) { + c(a); + for (var d = a.parentNode.querySelectorAll(b), e = 0, f = d.length; f > e; e++) if (d[e] === a) return !0; + return !1; + } + function e(a, d) { + return c(a), b(a, d); + } + var f, + g = function() { + if (a.matches) return "matches"; + if (a.matchesSelector) return "matchesSelector"; + for (var b = ["webkit", "moz", "ms", "o"], c = 0, d = b.length; d > c; c++) { + var e = b[c], f = e + "MatchesSelector"; + if (a[f]) return f; + } + }(); + if (g) { + var h = document.createElement("div"), i = b(h, "div"); + f = i ? b : e; + } else f = d; + "function" == typeof define && define.amd + ? define("matches-selector/matches-selector", [], function() { + return f; + }) + : "object" == typeof exports + ? module.exports = f + : window.matchesSelector = f; + }(Element.prototype), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("fizzy-ui-utils/utils", ["doc-ready/doc-ready", "matches-selector/matches-selector"], function(c, d) { + return b(a, c, d); + }) + : "object" == typeof exports + ? module.exports = b(a, require("doc-ready"), require("desandro-matches-selector")) + : a.fizzyUIUtils = b(a, a.docReady, a.matchesSelector); + }(window, function(a, b, c) { + var d = {}; + d.extend = function(a, b) { + for (var c in b) a[c] = b[c]; + return a; + }, + d.modulo = function(a, b) { + return (a % b + b) % b; + }; + var e = Object.prototype.toString; + d.isArray = function(a) { + return "[object Array]" == e.call(a); + }, + d.makeArray = function(a) { + var b = []; + if (d.isArray(a)) b = a; + else if (a && "number" == typeof a.length) for (var c = 0, e = a.length; e > c; c++) b.push(a[c]); + else b.push(a); + return b; + }, + d.indexOf = Array.prototype.indexOf + ? function(a, b) { + return a.indexOf(b); + } + : function(a, b) { + for (var c = 0, d = a.length; d > c; c++) if (a[c] === b) return c; + return -1; + }, + d.removeFrom = function(a, b) { + var c = d.indexOf(a, b); + -1 != c && a.splice(c, 1); + }, + d.isElement = "function" == typeof HTMLElement || "object" == typeof HTMLElement + ? function(a) { + return a instanceof HTMLElement; + } + : function(a) { + return a && "object" == typeof a && 1 == a.nodeType && "string" == typeof a.nodeName; + }, + d.setText = function() { + function a(a, c) { + b = b || (void 0 !== document.documentElement.textContent ? "textContent" : "innerText"), a[b] = c; + } + var b; + return a; + }(), + d.getParent = function(a, b) { + for (; a != document.body;) if (a = a.parentNode, c(a, b)) return a; + }, + d.getQueryElement = function(a) { + return "string" == typeof a ? document.querySelector(a) : a; + }, + d.handleEvent = function(a) { + var b = "on" + a.type; + this[b] && this[b](a); + }, + d.filterFindElements = function(a, b) { + a = d.makeArray(a); + for (var e = [], f = 0, g = a.length; g > f; f++) { + var h = a[f]; + if (d.isElement(h)) { + if (b) { + c(h, b) && e.push(h); + for (var i = h.querySelectorAll(b), j = 0, k = i.length; k > j; j++) e.push(i[j]); + } else e.push(h); + } + } + return e; + }, + d.debounceMethod = function(a, b, c) { + var d = a.prototype[b], e = b + "Timeout"; + a.prototype[b] = function() { + var a = this[e]; + a && clearTimeout(a); + var b = arguments, f = this; + this[e] = setTimeout(function() { + d.apply(f, b), delete f[e]; + }, c || 100); + }; + }, + d.toDashed = function(a) { + return a.replace(/(.)([A-Z])/g, function(a, b, c) { + return b + "-" + c; + }).toLowerCase(); + }; + var f = a.console; + return d.htmlInit = function(c, e) { + b(function() { + for ( + var b = d.toDashed(e), + g = document.querySelectorAll(".js-" + b), + h = "data-" + b + "-options", + i = 0, + j = g.length; + j > i; + i++ + ) { + var k, l = g[i], m = l.getAttribute(h); + try { + k = m && JSON.parse(m); + } catch (n) { + f + && f.error( + "Error parsing " + h + " on " + l.nodeName.toLowerCase() + (l.id ? "#" + l.id : "") + ": " + n, + ); + continue; + } + var o = new c(l, k), p = a.jQuery; + p && p.data(l, e, o); + } + }); + }, + d; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("outlayer/item", [ + "eventEmitter/EventEmitter", + "get-size/get-size", + "get-style-property/get-style-property", + "fizzy-ui-utils/utils", + ], function(c, d, e, f) { + return b(a, c, d, e, f); + }) + : "object" == typeof exports + ? module.exports = b( + a, + require("wolfy87-eventemitter"), + require("get-size"), + require("desandro-get-style-property"), + require("fizzy-ui-utils"), + ) + : (a.Outlayer = {}, a.Outlayer.Item = b(a, a.EventEmitter, a.getSize, a.getStyleProperty, a.fizzyUIUtils)); + }(window, function(a, b, c, d, e) { + "use strict"; + function f(a) { + for (var b in a) return !1; + return b = null, !0; + } + function g(a, b) { + a && (this.element = a, this.layout = b, this.position = { x: 0, y: 0 }, this._create()); + } + function h(a) { + return a.replace(/([A-Z])/g, function(a) { + return "-" + a.toLowerCase(); + }); + } + var i = a.getComputedStyle, + j = i + ? function(a) { + return i(a, null); + } + : function(a) { + return a.currentStyle; + }, + k = d("transition"), + l = d("transform"), + m = k && l, + n = !!d("perspective"), + o = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "otransitionend", + transition: "transitionend", + }[k], + p = ["transform", "transition", "transitionDuration", "transitionProperty"], + q = function() { + for (var a = {}, b = 0, c = p.length; c > b; b++) { + var e = p[b], f = d(e); + f && f !== e && (a[e] = f); + } + return a; + }(); + e.extend(g.prototype, b.prototype), + g.prototype._create = function() { + this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }); + }, + g.prototype.handleEvent = function(a) { + var b = "on" + a.type; + this[b] && this[b](a); + }, + g.prototype.getSize = function() { + this.size = c(this.element); + }, + g.prototype.css = function(a) { + var b = this.element.style; + for (var c in a) { + var d = q[c] || c; + b[d] = a[c]; + } + }, + g.prototype.getPosition = function() { + var a = j(this.element), + b = this.layout.options, + c = b.isOriginLeft, + d = b.isOriginTop, + e = a[c ? "left" : "right"], + f = a[d ? "top" : "bottom"], + g = this.layout.size, + h = -1 != e.indexOf("%") ? parseFloat(e) / 100 * g.width : parseInt(e, 10), + i = -1 != f.indexOf("%") ? parseFloat(f) / 100 * g.height : parseInt(f, 10); + h = isNaN(h) ? 0 : h, + i = isNaN(i) ? 0 : i, + h -= c ? g.paddingLeft : g.paddingRight, + i -= d ? g.paddingTop : g.paddingBottom, + this.position.x = h, + this.position.y = i; + }, + g.prototype.layoutPosition = function() { + var a = this.layout.size, + b = this.layout.options, + c = {}, + d = b.isOriginLeft ? "paddingLeft" : "paddingRight", + e = b.isOriginLeft ? "left" : "right", + f = b.isOriginLeft ? "right" : "left", + g = this.position.x + a[d]; + c[e] = this.getXValue(g), c[f] = ""; + var h = b.isOriginTop ? "paddingTop" : "paddingBottom", + i = b.isOriginTop ? "top" : "bottom", + j = b.isOriginTop ? "bottom" : "top", + k = this.position.y + a[h]; + c[i] = this.getYValue(k), c[j] = "", this.css(c), this.emitEvent("layout", [this]); + }, + g.prototype.getXValue = function(a) { + var b = this.layout.options; + return b.percentPosition && !b.isHorizontal ? a / this.layout.size.width * 100 + "%" : a + "px"; + }, + g.prototype.getYValue = function(a) { + var b = this.layout.options; + return b.percentPosition && b.isHorizontal ? a / this.layout.size.height * 100 + "%" : a + "px"; + }, + g.prototype._transitionTo = function(a, b) { + this.getPosition(); + var c = this.position.x, + d = this.position.y, + e = parseInt(a, 10), + f = parseInt(b, 10), + g = e === this.position.x && f === this.position.y; + if (this.setPosition(a, b), g && !this.isTransitioning) return void this.layoutPosition(); + var h = a - c, i = b - d, j = {}; + j.transform = this.getTranslate(h, i), + this.transition({ to: j, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }); + }, + g.prototype.getTranslate = function(a, b) { + var c = this.layout.options; + return a = c.isOriginLeft ? a : -a, + b = c.isOriginTop ? b : -b, + n ? "translate3d(" + a + "px, " + b + "px, 0)" : "translate(" + a + "px, " + b + "px)"; + }, + g.prototype.goTo = function(a, b) { + this.setPosition(a, b), this.layoutPosition(); + }, + g.prototype.moveTo = m ? g.prototype._transitionTo : g.prototype.goTo, + g.prototype.setPosition = function(a, b) { + this.position.x = parseInt(a, 10), this.position.y = parseInt(b, 10); + }, + g.prototype._nonTransition = function(a) { + this.css(a.to), a.isCleaning && this._removeStyles(a.to); + for (var b in a.onTransitionEnd) a.onTransitionEnd[b].call(this); + }, + g.prototype._transition = function(a) { + if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(a); + var b = this._transn; + for (var c in a.onTransitionEnd) b.onEnd[c] = a.onTransitionEnd[c]; + for (c in a.to) b.ingProperties[c] = !0, a.isCleaning && (b.clean[c] = !0); + if (a.from) { + this.css(a.from); + var d = this.element.offsetHeight; + d = null; + } + this.enableTransition(a.to), this.css(a.to), this.isTransitioning = !0; + }; + var r = "opacity," + h(q.transform || "transform"); + g.prototype.enableTransition = function() { + this.isTransitioning + || (this.css({ transitionProperty: r, transitionDuration: this.layout.options.transitionDuration }), + this.element.addEventListener(o, this, !1)); + }, + g.prototype.transition = g.prototype[k ? "_transition" : "_nonTransition"], + g.prototype.onwebkitTransitionEnd = function(a) { + this.ontransitionend(a); + }, + g.prototype.onotransitionend = function(a) { + this.ontransitionend(a); + }; + var s = { "-webkit-transform": "transform", "-moz-transform": "transform", "-o-transform": "transform" }; + g.prototype.ontransitionend = function(a) { + if (a.target === this.element) { + var b = this._transn, c = s[a.propertyName] || a.propertyName; + if ( + delete b.ingProperties[c], + f(b.ingProperties) && this.disableTransition(), + c in b.clean && (this.element.style[a.propertyName] = "", delete b.clean[c]), + c in b.onEnd + ) { + var d = b.onEnd[c]; + d.call(this), delete b.onEnd[c]; + } + this.emitEvent("transitionEnd", [this]); + } + }, + g.prototype.disableTransition = function() { + this.removeTransitionStyles(), this.element.removeEventListener(o, this, !1), this.isTransitioning = !1; + }, + g.prototype._removeStyles = function(a) { + var b = {}; + for (var c in a) b[c] = ""; + this.css(b); + }; + var t = { transitionProperty: "", transitionDuration: "" }; + return g.prototype.removeTransitionStyles = function() { + this.css(t); + }, + g.prototype.removeElem = function() { + this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]); + }, + g.prototype.remove = function() { + if (!k || !parseFloat(this.layout.options.transitionDuration)) return void this.removeElem(); + var a = this; + this.once("transitionEnd", function() { + a.removeElem(); + }), this.hide(); + }, + g.prototype.reveal = function() { + delete this.isHidden, this.css({ display: "" }); + var a = this.layout.options, b = {}, c = this.getHideRevealTransitionEndProperty("visibleStyle"); + b[c] = this.onRevealTransitionEnd, + this.transition({ from: a.hiddenStyle, to: a.visibleStyle, isCleaning: !0, onTransitionEnd: b }); + }, + g.prototype.onRevealTransitionEnd = function() { + this.isHidden || this.emitEvent("reveal"); + }, + g.prototype.getHideRevealTransitionEndProperty = function(a) { + var b = this.layout.options[a]; + if (b.opacity) return "opacity"; + for (var c in b) return c; + }, + g.prototype.hide = function() { + this.isHidden = !0, this.css({ display: "" }); + var a = this.layout.options, b = {}, c = this.getHideRevealTransitionEndProperty("hiddenStyle"); + b[c] = this.onHideTransitionEnd, + this.transition({ from: a.visibleStyle, to: a.hiddenStyle, isCleaning: !0, onTransitionEnd: b }); + }, + g.prototype.onHideTransitionEnd = function() { + this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")); + }, + g.prototype.destroy = function() { + this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }); + }, + g; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("outlayer/outlayer", [ + "eventie/eventie", + "eventEmitter/EventEmitter", + "get-size/get-size", + "fizzy-ui-utils/utils", + "./item", + ], function(c, d, e, f, g) { + return b(a, c, d, e, f, g); + }) + : "object" == typeof exports + ? module.exports = b( + a, + require("eventie"), + require("wolfy87-eventemitter"), + require("get-size"), + require("fizzy-ui-utils"), + require("./item"), + ) + : a.Outlayer = b(a, a.eventie, a.EventEmitter, a.getSize, a.fizzyUIUtils, a.Outlayer.Item); + }(window, function(a, b, c, d, e, f) { + "use strict"; + function g(a, b) { + var c = e.getQueryElement(a); + if (!c) return void (h && h.error("Bad element for " + this.constructor.namespace + ": " + (c || a))); + this.element = c, + i && (this.$element = i(this.element)), + this.options = e.extend({}, this.constructor.defaults), + this.option(b); + var d = ++k; + this.element.outlayerGUID = d, l[d] = this, this._create(), this.options.isInitLayout && this.layout(); + } + var h = a.console, i = a.jQuery, j = function() {}, k = 0, l = {}; + return g.namespace = "outlayer", + g.Item = f, + g.defaults = { + containerStyle: { position: "relative" }, + isInitLayout: !0, + isOriginLeft: !0, + isOriginTop: !0, + isResizeBound: !0, + isResizingContainer: !0, + transitionDuration: "0.4s", + hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, + visibleStyle: { opacity: 1, transform: "scale(1)" }, + }, + e.extend(g.prototype, c.prototype), + g.prototype.option = function(a) { + e.extend(this.options, a); + }, + g.prototype._create = function() { + this.reloadItems(), + this.stamps = [], + this.stamp(this.options.stamp), + e.extend(this.element.style, this.options.containerStyle), + this.options.isResizeBound && this.bindResize(); + }, + g.prototype.reloadItems = function() { + this.items = this._itemize(this.element.children); + }, + g.prototype._itemize = function(a) { + for ( + var b = this._filterFindItemElements(a), c = this.constructor.Item, d = [], e = 0, f = b.length; + f > e; + e++ + ) { + var g = b[e], h = new c(g, this); + d.push(h); + } + return d; + }, + g.prototype._filterFindItemElements = function(a) { + return e.filterFindElements(a, this.options.itemSelector); + }, + g.prototype.getItemElements = function() { + for (var a = [], b = 0, c = this.items.length; c > b; b++) a.push(this.items[b].element); + return a; + }, + g.prototype.layout = function() { + this._resetLayout(), this._manageStamps(); + var a = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; + this.layoutItems(this.items, a), this._isLayoutInited = !0; + }, + g.prototype._init = g.prototype.layout, + g.prototype._resetLayout = function() { + this.getSize(); + }, + g.prototype.getSize = function() { + this.size = d(this.element); + }, + g.prototype._getMeasurement = function(a, b) { + var c, f = this.options[a]; + f + ? ("string" == typeof f ? c = this.element.querySelector(f) : e.isElement(f) && (c = f), + this[a] = c ? d(c)[b] : f) + : this[a] = 0; + }, + g.prototype.layoutItems = function(a, b) { + a = this._getItemsForLayout(a), this._layoutItems(a, b), this._postLayout(); + }, + g.prototype._getItemsForLayout = function(a) { + for (var b = [], c = 0, d = a.length; d > c; c++) { + var e = a[c]; + e.isIgnored || b.push(e); + } + return b; + }, + g.prototype._layoutItems = function(a, b) { + if (this._emitCompleteOnItems("layout", a), a && a.length) { + for (var c = [], d = 0, e = a.length; e > d; d++) { + var f = a[d], g = this._getItemLayoutPosition(f); + g.item = f, g.isInstant = b || f.isLayoutInstant, c.push(g); + } + this._processLayoutQueue(c); + } + }, + g.prototype._getItemLayoutPosition = function() { + return { x: 0, y: 0 }; + }, + g.prototype._processLayoutQueue = function(a) { + for (var b = 0, c = a.length; c > b; b++) { + var d = a[b]; + this._positionItem(d.item, d.x, d.y, d.isInstant); + } + }, + g.prototype._positionItem = function(a, b, c, d) { + d ? a.goTo(b, c) : a.moveTo(b, c); + }, + g.prototype._postLayout = function() { + this.resizeContainer(); + }, + g.prototype.resizeContainer = function() { + if (this.options.isResizingContainer) { + var a = this._getContainerSize(); + a && (this._setContainerMeasure(a.width, !0), this._setContainerMeasure(a.height, !1)); + } + }, + g.prototype._getContainerSize = j, + g.prototype._setContainerMeasure = function(a, b) { + if (void 0 !== a) { + var c = this.size; + c.isBorderBox && (a += b + ? c.paddingLeft + c.paddingRight + c.borderLeftWidth + c.borderRightWidth + : c.paddingBottom + c.paddingTop + c.borderTopWidth + c.borderBottomWidth), + a = Math.max(a, 0), + this.element.style[b ? "width" : "height"] = a + "px"; + } + }, + g.prototype._emitCompleteOnItems = function(a, b) { + function c() { + e.dispatchEvent(a + "Complete", null, [b]); + } + function d() { + g++, g === f && c(); + } + var e = this, f = b.length; + if (!b || !f) return void c(); + for (var g = 0, h = 0, i = b.length; i > h; h++) { + var j = b[h]; + j.once(a, d); + } + }, + g.prototype.dispatchEvent = function(a, b, c) { + var d = b ? [b].concat(c) : c; + if (this.emitEvent(a, d), i) { + if (this.$element = this.$element || i(this.element), b) { + var e = i.Event(b); + e.type = a, this.$element.trigger(e, c); + } else this.$element.trigger(a, c); + } + }, + g.prototype.ignore = function(a) { + var b = this.getItem(a); + b && (b.isIgnored = !0); + }, + g.prototype.unignore = function(a) { + var b = this.getItem(a); + b && delete b.isIgnored; + }, + g.prototype.stamp = function(a) { + if (a = this._find(a)) { + this.stamps = this.stamps.concat(a); + for (var b = 0, c = a.length; c > b; b++) { + var d = a[b]; + this.ignore(d); + } + } + }, + g.prototype.unstamp = function(a) { + if (a = this._find(a)) { + for (var b = 0, c = a.length; c > b; b++) { + var d = a[b]; + e.removeFrom(this.stamps, d), this.unignore(d); + } + } + }, + g.prototype._find = function(a) { + return a ? ("string" == typeof a && (a = this.element.querySelectorAll(a)), a = e.makeArray(a)) : void 0; + }, + g.prototype._manageStamps = function() { + if (this.stamps && this.stamps.length) { + this._getBoundingRect(); + for (var a = 0, b = this.stamps.length; b > a; a++) { + var c = this.stamps[a]; + this._manageStamp(c); + } + } + }, + g.prototype._getBoundingRect = function() { + var a = this.element.getBoundingClientRect(), b = this.size; + this._boundingRect = { + left: a.left + b.paddingLeft + b.borderLeftWidth, + top: a.top + b.paddingTop + b.borderTopWidth, + right: a.right - (b.paddingRight + b.borderRightWidth), + bottom: a.bottom - (b.paddingBottom + b.borderBottomWidth), + }; + }, + g.prototype._manageStamp = j, + g.prototype._getElementOffset = function(a) { + var b = a.getBoundingClientRect(), + c = this._boundingRect, + e = d(a), + f = { + left: b.left - c.left - e.marginLeft, + top: b.top - c.top - e.marginTop, + right: c.right - b.right - e.marginRight, + bottom: c.bottom - b.bottom - e.marginBottom, + }; + return f; + }, + g.prototype.handleEvent = function(a) { + var b = "on" + a.type; + this[b] && this[b](a); + }, + g.prototype.bindResize = function() { + this.isResizeBound || (b.bind(a, "resize", this), this.isResizeBound = !0); + }, + g.prototype.unbindResize = function() { + this.isResizeBound && b.unbind(a, "resize", this), this.isResizeBound = !1; + }, + g.prototype.onresize = function() { + function a() { + b.resize(), delete b.resizeTimeout; + } + this.resizeTimeout && clearTimeout(this.resizeTimeout); + var b = this; + this.resizeTimeout = setTimeout(a, 100); + }, + g.prototype.resize = function() { + this.isResizeBound && this.needsResizeLayout() && this.layout(); + }, + g.prototype.needsResizeLayout = function() { + var a = d(this.element), b = this.size && a; + return b && a.innerWidth !== this.size.innerWidth; + }, + g.prototype.addItems = function(a) { + var b = this._itemize(a); + return b.length && (this.items = this.items.concat(b)), b; + }, + g.prototype.appended = function(a) { + var b = this.addItems(a); + b.length && (this.layoutItems(b, !0), this.reveal(b)); + }, + g.prototype.prepended = function(a) { + var b = this._itemize(a); + if (b.length) { + var c = this.items.slice(0); + this.items = b.concat(c), + this._resetLayout(), + this._manageStamps(), + this.layoutItems(b, !0), + this.reveal(b), + this.layoutItems(c); + } + }, + g.prototype.reveal = function(a) { + this._emitCompleteOnItems("reveal", a); + for (var b = a && a.length, c = 0; b && b > c; c++) { + var d = a[c]; + d.reveal(); + } + }, + g.prototype.hide = function(a) { + this._emitCompleteOnItems("hide", a); + for (var b = a && a.length, c = 0; b && b > c; c++) { + var d = a[c]; + d.hide(); + } + }, + g.prototype.revealItemElements = function(a) { + var b = this.getItems(a); + this.reveal(b); + }, + g.prototype.hideItemElements = function(a) { + var b = this.getItems(a); + this.hide(b); + }, + g.prototype.getItem = function(a) { + for (var b = 0, c = this.items.length; c > b; b++) { + var d = this.items[b]; + if (d.element === a) return d; + } + }, + g.prototype.getItems = function(a) { + a = e.makeArray(a); + for (var b = [], c = 0, d = a.length; d > c; c++) { + var f = a[c], g = this.getItem(f); + g && b.push(g); + } + return b; + }, + g.prototype.remove = function(a) { + var b = this.getItems(a); + if (this._emitCompleteOnItems("remove", b), b && b.length) { + for (var c = 0, d = b.length; d > c; c++) { + var f = b[c]; + f.remove(), e.removeFrom(this.items, f); + } + } + }, + g.prototype.destroy = function() { + var a = this.element.style; + a.height = "", a.position = "", a.width = ""; + for (var b = 0, c = this.items.length; c > b; b++) { + var d = this.items[b]; + d.destroy(); + } + this.unbindResize(); + var e = this.element.outlayerGUID; + delete l[e], delete this.element.outlayerGUID, i && i.removeData(this.element, this.constructor.namespace); + }, + g.data = function(a) { + a = e.getQueryElement(a); + var b = a && a.outlayerGUID; + return b && l[b]; + }, + g.create = function(a, b) { + function c() { + g.apply(this, arguments); + } + return Object.create ? c.prototype = Object.create(g.prototype) : e.extend(c.prototype, g.prototype), + c.prototype.constructor = c, + c.defaults = e.extend({}, g.defaults), + e.extend(c.defaults, b), + c.prototype.settings = {}, + c.namespace = a, + c.data = g.data, + c.Item = function() { + f.apply(this, arguments); + }, + c.Item.prototype = new f(), + e.htmlInit(c, a), + i && i.bridget && i.bridget(a, c), + c; + }, + g.Item = f, + g; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("isotope/js/item", ["outlayer/outlayer"], b) + : "object" == typeof exports + ? module.exports = b(require("outlayer")) + : (a.Isotope = a.Isotope || {}, a.Isotope.Item = b(a.Outlayer)); + }(window, function(a) { + "use strict"; + function b() { + a.Item.apply(this, arguments); + } + b.prototype = new a.Item(), + b.prototype._create = function() { + this.id = this.layout.itemGUID++, a.Item.prototype._create.call(this), this.sortData = {}; + }, + b.prototype.updateSortData = function() { + if (!this.isIgnored) { + this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random(); + var a = this.layout.options.getSortData, b = this.layout._sorters; + for (var c in a) { + var d = b[c]; + this.sortData[c] = d(this.element, this); + } + } + }; + var c = b.prototype.destroy; + return b.prototype.destroy = function() { + c.apply(this, arguments), this.css({ display: "" }); + }, + b; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("isotope/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], b) + : "object" == typeof exports + ? module.exports = b(require("get-size"), require("outlayer")) + : (a.Isotope = a.Isotope || {}, a.Isotope.LayoutMode = b(a.getSize, a.Outlayer)); + }(window, function(a, b) { + "use strict"; + function c(a) { + this.isotope = a, + a + && (this.options = a.options[this.namespace], + this.element = a.element, + this.items = a.filteredItems, + this.size = a.size); + } + return function() { + function a(a) { + return function() { + return b.prototype[a].apply(this.isotope, arguments); + }; + } + for ( + var d = [ + "_resetLayout", + "_getItemLayoutPosition", + "_manageStamp", + "_getContainerSize", + "_getElementOffset", + "needsResizeLayout", + ], + e = 0, + f = d.length; + f > e; + e++ + ) { + var g = d[e]; + c.prototype[g] = a(g); + } + }(), + c.prototype.needsVerticalResizeLayout = function() { + var b = a(this.isotope.element), c = this.isotope.size && b; + return c && b.innerHeight != this.isotope.size.innerHeight; + }, + c.prototype._getMeasurement = function() { + this.isotope._getMeasurement.apply(this, arguments); + }, + c.prototype.getColumnWidth = function() { + this.getSegmentSize("column", "Width"); + }, + c.prototype.getRowHeight = function() { + this.getSegmentSize("row", "Height"); + }, + c.prototype.getSegmentSize = function(a, b) { + var c = a + b, d = "outer" + b; + if (this._getMeasurement(c, d), !this[c]) { + var e = this.getFirstItemSize(); + this[c] = e && e[d] || this.isotope.size["inner" + b]; + } + }, + c.prototype.getFirstItemSize = function() { + var b = this.isotope.filteredItems[0]; + return b && b.element && a(b.element); + }, + c.prototype.layout = function() { + this.isotope.layout.apply(this.isotope, arguments); + }, + c.prototype.getSize = function() { + this.isotope.getSize(), this.size = this.isotope.size; + }, + c.modes = {}, + c.create = function(a, b) { + function d() { + c.apply(this, arguments); + } + return d.prototype = new c(), b && (d.options = b), d.prototype.namespace = a, c.modes[a] = d, d; + }, + c; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("masonry/masonry", ["outlayer/outlayer", "get-size/get-size", "fizzy-ui-utils/utils"], b) + : "object" == typeof exports + ? module.exports = b(require("outlayer"), require("get-size"), require("fizzy-ui-utils")) + : a.Masonry = b(a.Outlayer, a.getSize, a.fizzyUIUtils); + }(window, function(a, b, c) { + var d = a.create("masonry"); + return d.prototype._resetLayout = function() { + this.getSize(), + this._getMeasurement("columnWidth", "outerWidth"), + this._getMeasurement("gutter", "outerWidth"), + this.measureColumns(); + var a = this.cols; + for (this.colYs = []; a--;) this.colYs.push(0); + this.maxY = 0; + }, + d.prototype.measureColumns = function() { + if (this.getContainerWidth(), !this.columnWidth) { + var a = this.items[0], c = a && a.element; + this.columnWidth = c && b(c).outerWidth || this.containerWidth; + } + var d = this.columnWidth += this.gutter, + e = this.containerWidth + this.gutter, + f = e / d, + g = d - e % d, + h = g && 1 > g ? "round" : "floor"; + f = Math[h](f), this.cols = Math.max(f, 1); + }, + d.prototype.getContainerWidth = function() { + var a = this.options.isFitWidth ? this.element.parentNode : this.element, c = b(a); + this.containerWidth = c && c.innerWidth; + }, + d.prototype._getItemLayoutPosition = function(a) { + a.getSize(); + var b = a.size.outerWidth % this.columnWidth, + d = b && 1 > b ? "round" : "ceil", + e = Math[d](a.size.outerWidth / this.columnWidth); + e = Math.min(e, this.cols); + for ( + var f = this._getColGroup(e), + g = Math.min.apply(Math, f), + h = c.indexOf(f, g), + i = { x: this.columnWidth * h, y: g }, + j = g + a.size.outerHeight, + k = this.cols + 1 - f.length, + l = 0; + k > l; + l++ + ) this.colYs[h + l] = j; + return i; + }, + d.prototype._getColGroup = function(a) { + if (2 > a) return this.colYs; + for (var b = [], c = this.cols + 1 - a, d = 0; c > d; d++) { + var e = this.colYs.slice(d, d + a); + b[d] = Math.max.apply(Math, e); + } + return b; + }, + d.prototype._manageStamp = function(a) { + var c = b(a), + d = this._getElementOffset(a), + e = this.options.isOriginLeft ? d.left : d.right, + f = e + c.outerWidth, + g = Math.floor(e / this.columnWidth); + g = Math.max(0, g); + var h = Math.floor(f / this.columnWidth); + h -= f % this.columnWidth ? 0 : 1, h = Math.min(this.cols - 1, h); + for (var i = (this.options.isOriginTop ? d.top : d.bottom) + c.outerHeight, j = g; h >= j; j++) { + this.colYs[j] = Math.max(i, this.colYs[j]); + } + }, + d.prototype._getContainerSize = function() { + this.maxY = Math.max.apply(Math, this.colYs); + var a = { height: this.maxY }; + return this.options.isFitWidth && (a.width = this._getContainerFitWidth()), a; + }, + d.prototype._getContainerFitWidth = function() { + for (var a = 0, b = this.cols; --b && 0 === this.colYs[b];) a++; + return (this.cols - a) * this.columnWidth - this.gutter; + }, + d.prototype.needsResizeLayout = function() { + var a = this.containerWidth; + return this.getContainerWidth(), a !== this.containerWidth; + }, + d; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("isotope/js/layout-modes/masonry", ["../layout-mode", "masonry/masonry"], b) + : "object" == typeof exports + ? module.exports = b(require("../layout-mode"), require("masonry-layout")) + : b(a.Isotope.LayoutMode, a.Masonry); + }(window, function(a, b) { + "use strict"; + function c(a, b) { + for (var c in b) a[c] = b[c]; + return a; + } + var d = a.create("masonry"), + e = d.prototype._getElementOffset, + f = d.prototype.layout, + g = d.prototype._getMeasurement; + c(d.prototype, b.prototype), + d.prototype._getElementOffset = e, + d.prototype.layout = f, + d.prototype._getMeasurement = g; + var h = d.prototype.measureColumns; + d.prototype.measureColumns = function() { + this.items = this.isotope.filteredItems, h.call(this); + }; + var i = d.prototype._manageStamp; + return d.prototype._manageStamp = function() { + this.options.isOriginLeft = this.isotope.options.isOriginLeft, + this.options.isOriginTop = this.isotope.options.isOriginTop, + i.apply(this, arguments); + }, + d; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("isotope/js/layout-modes/fit-rows", ["../layout-mode"], b) + : "object" == typeof exports + ? module.exports = b(require("../layout-mode")) + : b(a.Isotope.LayoutMode); + }(window, function(a) { + "use strict"; + var b = a.create("fitRows"); + return b.prototype._resetLayout = function() { + this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth"); + }, + b.prototype._getItemLayoutPosition = function(a) { + a.getSize(); + var b = a.size.outerWidth + this.gutter, c = this.isotope.size.innerWidth + this.gutter; + 0 !== this.x && b + this.x > c && (this.x = 0, this.y = this.maxY); + var d = { x: this.x, y: this.y }; + return this.maxY = Math.max(this.maxY, this.y + a.size.outerHeight), this.x += b, d; + }, + b.prototype._getContainerSize = function() { + return { height: this.maxY }; + }, + b; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define("isotope/js/layout-modes/vertical", ["../layout-mode"], b) + : "object" == typeof exports + ? module.exports = b(require("../layout-mode")) + : b(a.Isotope.LayoutMode); + }(window, function(a) { + "use strict"; + var b = a.create("vertical", { horizontalAlignment: 0 }); + return b.prototype._resetLayout = function() { + this.y = 0; + }, + b.prototype._getItemLayoutPosition = function(a) { + a.getSize(); + var b = (this.isotope.size.innerWidth - a.size.outerWidth) * this.options.horizontalAlignment, c = this.y; + return this.y += a.size.outerHeight, { x: b, y: c }; + }, + b.prototype._getContainerSize = function() { + return { height: this.y }; + }, + b; + }), + function(a, b) { + "use strict"; + "function" == typeof define && define.amd + ? define([ + "outlayer/outlayer", + "get-size/get-size", + "matches-selector/matches-selector", + "fizzy-ui-utils/utils", + "isotope/js/item", + "isotope/js/layout-mode", + "isotope/js/layout-modes/masonry", + "isotope/js/layout-modes/fit-rows", + "isotope/js/layout-modes/vertical", + ], function(c, d, e, f, g, h) { + return b(a, c, d, e, f, g, h); + }) + : "object" == typeof exports + ? module.exports = b( + a, + require("outlayer"), + require("get-size"), + require("desandro-matches-selector"), + require("fizzy-ui-utils"), + require("./item"), + require("./layout-mode"), + require("./layout-modes/masonry"), + require("./layout-modes/fit-rows"), + require("./layout-modes/vertical"), + ) + : a.Isotope = b( + a, + a.Outlayer, + a.getSize, + a.matchesSelector, + a.fizzyUIUtils, + a.Isotope.Item, + a.Isotope.LayoutMode, + ); + }(window, function(a, b, c, d, e, f, g) { + function h(a, b) { + return function(c, d) { + for (var e = 0, f = a.length; f > e; e++) { + var g = a[e], h = c.sortData[g], i = d.sortData[g]; + if (h > i || i > h) { + var j = void 0 !== b[g] ? b[g] : b, k = j ? 1 : -1; + return (h > i ? 1 : -1) * k; + } + } + return 0; + }; + } + var i = a.jQuery, + j = String.prototype.trim + ? function(a) { + return a.trim(); + } + : function(a) { + return a.replace(/^\s+|\s+$/g, ""); + }, + k = document.documentElement, + l = k.textContent + ? function(a) { + return a.textContent; + } + : function(a) { + return a.innerText; + }, + m = b.create("isotope", { layoutMode: "masonry", isJQueryFiltering: !0, sortAscending: !0 }); + m.Item = f, + m.LayoutMode = g, + m.prototype._create = function() { + this.itemGUID = 0, + this._sorters = {}, + this._getSorters(), + b.prototype._create.call(this), + this.modes = {}, + this.filteredItems = this.items, + this.sortHistory = ["original-order"]; + for (var a in g.modes) this._initLayoutMode(a); + }, + m.prototype.reloadItems = function() { + this.itemGUID = 0, b.prototype.reloadItems.call(this); + }, + m.prototype._itemize = function() { + for (var a = b.prototype._itemize.apply(this, arguments), c = 0, d = a.length; d > c; c++) { + var e = a[c]; + e.id = this.itemGUID++; + } + return this._updateItemsSortData(a), a; + }, + m.prototype._initLayoutMode = function(a) { + var b = g.modes[a], c = this.options[a] || {}; + this.options[a] = b.options ? e.extend(b.options, c) : c, this.modes[a] = new b(this); + }, + m.prototype.layout = function() { + return !this._isLayoutInited && this.options.isInitLayout ? void this.arrange() : void this._layout(); + }, + m.prototype._layout = function() { + var a = this._getIsInstant(); + this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, a), this._isLayoutInited = !0; + }, + m.prototype.arrange = function(a) { + function b() { + d.reveal(c.needReveal), d.hide(c.needHide); + } + this.option(a), this._getIsInstant(); + var c = this._filter(this.items); + this.filteredItems = c.matches; + var d = this; + this._bindArrangeComplete(), this._isInstant ? this._noTransition(b) : b(), this._sort(), this._layout(); + }, + m.prototype._init = m.prototype.arrange, + m.prototype._getIsInstant = function() { + var a = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; + return this._isInstant = a, a; + }, + m.prototype._bindArrangeComplete = function() { + function a() { + b && c && d && e.dispatchEvent("arrangeComplete", null, [e.filteredItems]); + } + var b, c, d, e = this; + this.once("layoutComplete", function() { + b = !0, a(); + }), + this.once("hideComplete", function() { + c = !0, a(); + }), + this.once("revealComplete", function() { + d = !0, a(); + }); + }, + m.prototype._filter = function(a) { + var b = this.options.filter; + b = b || "*"; + for (var c = [], d = [], e = [], f = this._getFilterTest(b), g = 0, h = a.length; h > g; g++) { + var i = a[g]; + if (!i.isIgnored) { + var j = f(i); + j && c.push(i), j && i.isHidden ? d.push(i) : j || i.isHidden || e.push(i); + } + } + return { matches: c, needReveal: d, needHide: e }; + }, + m.prototype._getFilterTest = function(a) { + return i && this.options.isJQueryFiltering + ? function(b) { + return i(b.element).is(a); + } + : "function" == typeof a + ? function(b) { + return a(b.element); + } + : function(b) { + return d(b.element, a); + }; + }, + m.prototype.updateSortData = function(a) { + var b; + a ? (a = e.makeArray(a), b = this.getItems(a)) : b = this.items, + this._getSorters(), + this._updateItemsSortData(b); + }, + m.prototype._getSorters = function() { + var a = this.options.getSortData; + for (var b in a) { + var c = a[b]; + this._sorters[b] = n(c); + } + }, + m.prototype._updateItemsSortData = function(a) { + for (var b = a && a.length, c = 0; b && b > c; c++) { + var d = a[c]; + d.updateSortData(); + } + }; + var n = function() { + function a(a) { + if ("string" != typeof a) return a; + var c = j(a).split(" "), + d = c[0], + e = d.match(/^\[(.+)\]$/), + f = e && e[1], + g = b(f, d), + h = m.sortDataParsers[c[1]]; + return a = h + ? function(a) { + return a && h(g(a)); + } + : function(a) { + return a && g(a); + }; + } + function b(a, b) { + var c; + return c = a + ? function(b) { + return b.getAttribute(a); + } + : function(a) { + var c = a.querySelector(b); + return c && l(c); + }; + } + return a; + }(); + m.sortDataParsers = { + parseInt: function(a) { + return parseInt(a, 10); + }, + parseFloat: function(a) { + return parseFloat(a); + }, + }, + m.prototype._sort = function() { + var a = this.options.sortBy; + if (a) { + var b = [].concat.apply(a, this.sortHistory), c = h(b, this.options.sortAscending); + this.filteredItems.sort(c), a != this.sortHistory[0] && this.sortHistory.unshift(a); + } + }, + m.prototype._mode = function() { + var a = this.options.layoutMode, b = this.modes[a]; + if (!b) throw new Error("No layout mode: " + a); + return b.options = this.options[a], b; + }, + m.prototype._resetLayout = function() { + b.prototype._resetLayout.call(this), this._mode()._resetLayout(); + }, + m.prototype._getItemLayoutPosition = function(a) { + return this._mode()._getItemLayoutPosition(a); + }, + m.prototype._manageStamp = function(a) { + this._mode()._manageStamp(a); + }, + m.prototype._getContainerSize = function() { + return this._mode()._getContainerSize(); + }, + m.prototype.needsResizeLayout = function() { + return this._mode().needsResizeLayout(); + }, + m.prototype.appended = function(a) { + var b = this.addItems(a); + if (b.length) { + var c = this._filterRevealAdded(b); + this.filteredItems = this.filteredItems.concat(c); + } + }, + m.prototype.prepended = function(a) { + var b = this._itemize(a); + if (b.length) { + this._resetLayout(), this._manageStamps(); + var c = this._filterRevealAdded(b); + this.layoutItems(this.filteredItems), + this.filteredItems = c.concat(this.filteredItems), + this.items = b.concat(this.items); + } + }, + m.prototype._filterRevealAdded = function(a) { + var b = this._filter(a); + return this.hide(b.needHide), this.reveal(b.matches), this.layoutItems(b.matches, !0), b.matches; + }, + m.prototype.insert = function(a) { + var b = this.addItems(a); + if (b.length) { + var c, d, e = b.length; + for (c = 0; e > c; c++) d = b[c], this.element.appendChild(d.element); + var f = this._filter(b).matches; + for (c = 0; e > c; c++) b[c].isLayoutInstant = !0; + for (this.arrange(), c = 0; e > c; c++) delete b[c].isLayoutInstant; + this.reveal(f); + } + }; + var o = m.prototype.remove; + return m.prototype.remove = function(a) { + a = e.makeArray(a); + var b = this.getItems(a); + o.call(this, a); + var c = b && b.length; + if (c) { + for (var d = 0; c > d; d++) { + var f = b[d]; + e.removeFrom(this.filteredItems, f); + } + } + }, + m.prototype.shuffle = function() { + for (var a = 0, b = this.items.length; b > a; a++) { + var c = this.items[a]; + c.sortData.random = Math.random(); + } + this.options.sortBy = "random", this._sort(), this._layout(); + }, + m.prototype._noTransition = function(a) { + var b = this.options.transitionDuration; + this.options.transitionDuration = 0; + var c = a.call(this); + return this.options.transitionDuration = b, c; + }, + m.prototype.getFilteredItemElements = function() { + for (var a = [], b = 0, c = this.filteredItems.length; c > b; b++) a.push(this.filteredItems[b].element); + return a; + }, + m; + }); + +/*! +* jquery.counterup.js 1.0 +* +* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal +* Released under the GPL v2 License +* +* Date: Nov 26, 2013 +*/ (function(e) { + "use strict"; + e.fn.counterUp = function(t) { + var n = e.extend({ time: 400, delay: 10 }, t); + return this.each(function() { + var t = e(this), + r = n, + i = function() { + var e = [], n = r.time / r.delay, i = t.text(), s = /[0-9]+,[0-9]+/.test(i); + i = i.replace(/,/g, ""); + var o = /^[0-9]+$/.test(i), u = /^[0-9]+\.[0-9]+$/.test(i), a = u ? (i.split(".")[1] || []).length : 0; + for (var f = n; f >= 1; f--) { + var l = parseInt(i / n * f); + u && (l = parseFloat(i / n * f).toFixed(a)); + if (s) while (/(\d+)(\d{3})/.test(l.toString())) l = l.toString().replace(/(\d+)(\d{3})/, "$1,$2"); + e.unshift(l); + } + t.data("counterup-nums", e); + t.text("0"); + var c = function() { + t.text(t.data("counterup-nums").shift()); + if (t.data("counterup-nums").length) setTimeout(t.data("counterup-func"), r.delay); + else { + delete t.data("counterup-nums"); + t.data("counterup-nums", null); + t.data("counterup-func", null); + } + }; + t.data("counterup-func", c); + setTimeout(t.data("counterup-func"), r.delay); + }; + t.waypoint(i, { offset: "100%", triggerOnce: !0 }); + }); + }; +})(jQuery); + +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright © 2001 Robert Penner + * All rights reserved. + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ +jQuery.easing.jswing = jQuery.easing.swing; +jQuery.extend(jQuery.easing, { + def: "easeOutQuad", + swing: function(e, f, a, h, g) { + return jQuery.easing[jQuery.easing.def](e, f, a, h, g); + }, + easeInQuad: function(e, f, a, h, g) { + return h * (f /= g) * f + a; + }, + easeOutQuad: function(e, f, a, h, g) { + return -h * (f /= g) * (f - 2) + a; + }, + easeInOutQuad: function(e, f, a, h, g) { + if ((f /= g / 2) < 1) return h / 2 * f * f + a; + return -h / 2 * ((--f) * (f - 2) - 1) + a; + }, + easeInCubic: function(e, f, a, h, g) { + return h * (f /= g) * f * f + a; + }, + easeOutCubic: function(e, f, a, h, g) { + return h * ((f = f / g - 1) * f * f + 1) + a; + }, + easeInOutCubic: function(e, f, a, h, g) { + if ((f /= g / 2) < 1) return h / 2 * f * f * f + a; + return h / 2 * ((f -= 2) * f * f + 2) + a; + }, + easeInQuart: function(e, f, a, h, g) { + return h * (f /= g) * f * f * f + a; + }, + easeOutQuart: function(e, f, a, h, g) { + return -h * ((f = f / g - 1) * f * f * f - 1) + a; + }, + easeInOutQuart: function(e, f, a, h, g) { + if ((f /= g / 2) < 1) return h / 2 * f * f * f * f + a; + return -h / 2 * ((f -= 2) * f * f * f - 2) + a; + }, + easeInQuint: function(e, f, a, h, g) { + return h * (f /= g) * f * f * f * f + a; + }, + easeOutQuint: function(e, f, a, h, g) { + return h * ((f = f / g - 1) * f * f * f * f + 1) + a; + }, + easeInOutQuint: function(e, f, a, h, g) { + if ((f /= g / 2) < 1) return h / 2 * f * f * f * f * f + a; + return h / 2 * ((f -= 2) * f * f * f * f + 2) + a; + }, + easeInSine: function(e, f, a, h, g) { + return -h * Math.cos(f / g * (Math.PI / 2)) + h + a; + }, + easeOutSine: function(e, f, a, h, g) { + return h * Math.sin(f / g * (Math.PI / 2)) + a; + }, + easeInOutSine: function(e, f, a, h, g) { + return -h / 2 * (Math.cos(Math.PI * f / g) - 1) + a; + }, + easeInExpo: function(e, f, a, h, g) { + return (f == 0) ? a : h * Math.pow(2, 10 * (f / g - 1)) + a; + }, + easeOutExpo: function(e, f, a, h, g) { + return (f == g) ? a + h : h * (-Math.pow(2, -10 * f / g) + 1) + a; + }, + easeInOutExpo: function(e, f, a, h, g) { + if (f == 0) return a; + if (f == g) return a + h; + if ((f /= g / 2) < 1) return h / 2 * Math.pow(2, 10 * (f - 1)) + a; + return h / 2 * (-Math.pow(2, -10 * --f) + 2) + a; + }, + easeInCirc: function(e, f, a, h, g) { + return -h * (Math.sqrt(1 - (f /= g) * f) - 1) + a; + }, + easeOutCirc: function(e, f, a, h, g) { + return h * Math.sqrt(1 - (f = f / g - 1) * f) + a; + }, + easeInOutCirc: function(e, f, a, h, g) { + if ((f /= g / 2) < 1) return -h / 2 * (Math.sqrt(1 - f * f) - 1) + a; + return h / 2 * (Math.sqrt(1 - (f -= 2) * f) + 1) + a; + }, + easeInElastic: function(f, h, e, l, k) { + var i = 1.70158; + var j = 0; + var g = l; + if (h == 0) return e; + if ((h /= k) == 1) return e + l; + if (!j) j = k * 0.3; + if (g < Math.abs(l)) { + g = l; + var i = j / 4; + } else var i = j / (2 * Math.PI) * Math.asin(l / g); + return -(g * Math.pow(2, 10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j)) + e; + }, + easeOutElastic: function(f, h, e, l, k) { + var i = 1.70158; + var j = 0; + var g = l; + if (h == 0) return e; + if ((h /= k) == 1) return e + l; + if (!j) j = k * 0.3; + if (g < Math.abs(l)) { + g = l; + var i = j / 4; + } else var i = j / (2 * Math.PI) * Math.asin(l / g); + return g * Math.pow(2, -10 * h) * Math.sin((h * k - i) * (2 * Math.PI) / j) + l + e; + }, + easeInOutElastic: function(f, h, e, l, k) { + var i = 1.70158; + var j = 0; + var g = l; + if (h == 0) return e; + if ((h /= k / 2) == 2) return e + l; + if (!j) j = k * (0.3 * 1.5); + if (g < Math.abs(l)) { + g = l; + var i = j / 4; + } else var i = j / (2 * Math.PI) * Math.asin(l / g); + if (h < 1) return -0.5 * (g * Math.pow(2, 10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j)) + e; + return g * Math.pow(2, -10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j) * 0.5 + l + e; + }, + easeInBack: function(e, f, a, i, h, g) { + if (g == undefined) g = 1.70158; + return i * (f /= h) * f * ((g + 1) * f - g) + a; + }, + easeOutBack: function(e, f, a, i, h, g) { + if (g == undefined) g = 1.70158; + return i * ((f = f / h - 1) * f * ((g + 1) * f + g) + 1) + a; + }, + easeInOutBack: function(e, f, a, i, h, g) { + if (g == undefined) g = 1.70158; + if ((f /= h / 2) < 1) return i / 2 * (f * f * (((g *= 1.525) + 1) * f - g)) + a; + return i / 2 * ((f -= 2) * f * (((g *= 1.525) + 1) * f + g) + 2) + a; + }, + easeInBounce: function(e, f, a, h, g) { + return h - jQuery.easing.easeOutBounce(e, g - f, 0, h, g) + a; + }, + easeOutBounce: function(e, f, a, h, g) { + if ((f /= g) < (1 / 2.75)) return h * (7.5625 * f * f) + a; + else {if (f < (2 / 2.75)) return h * (7.5625 * (f -= 1.5 / 2.75) * f + 0.75) + a; + else {if (f < (2.5 / 2.75)) return h * (7.5625 * (f -= 2.25 / 2.75) * f + 0.9375) + a; + else return h * (7.5625 * (f -= 2.625 / 2.75) * f + 0.984375) + a;}} + }, + easeInOutBounce: function(e, f, a, h, g) { + if (f < g / 2) return jQuery.easing.easeInBounce(e, f * 2, 0, h, g) * 0.5 + a; + return jQuery.easing.easeOutBounce(e, f * 2 - g, 0, h, g) * 0.5 + h * 0.5 + a; + }, +}); + +// CountDown Clock +// Version : 1.0.1 +// Developer : Ekrem KAYA +// Website : http://e-piksel.com +// GitHub : https://github.com/epiksel/countdown + +!function(t) { + t.fn.countdown = function(e, n) { + function o() { + var t = new Date(r.date), e = s(), o = t - e; + if (0 > o) return clearInterval(d), void (n && "function" == typeof n && n()); + var a = 1e3, + f = 60 * a, + u = 60 * f, + l = 24 * u, + c = Math.floor(o / l), + h = Math.floor(o % l / u), + x = Math.floor(o % u / f), + g = Math.floor(o % f / a), + y = 1 === c ? r.day : r.days, + m = 1 === h ? r.hour : r.hours, + v = 1 === x ? r.minute : r.minutes, + D = 1 === g ? r.second : r.seconds; + c = String(c).length >= 2 ? c : "0" + c, + h = String(h).length >= 2 ? h : "0" + h, + x = String(x).length >= 2 ? x : "0" + x, + g = String(g).length >= 2 ? g : "0" + g, + i.find(".days").text(c), + i.find(".hours").text(h), + i.find(".minutes").text(x), + i.find(".seconds").text(g), + i.find(".days_text").text(y), + i.find(".hours_text").text(m), + i.find(".minutes_text").text(v), + i.find(".seconds_text").text(D); + } + var r = t.extend({ + date: null, + offset: null, + day: "Day", + days: "Days", + hour: "Hour", + hours: "Hours", + minute: "Minute", + minutes: "Mins", + second: "Sec", + seconds: "Secs", + }, e); + r.date || t.error("Date is not defined."), + Date.parse(r.date) || t.error("Incorrect date format, it should look like this, 12/24/2012 12:00:00."); + var i = this, + s = function() { + var t = new Date(), e = t.getTime() + 6e4 * t.getTimezoneOffset(), n = new Date(e + 36e5 * r.offset); + return n; + }, + d = setInterval(o, 1e3); + }; +}(jQuery); diff --git a/docs/assets/js/popper.min.js b/docs/assets/js/popper.min.js index c1d69d992e..7b6658b0c6 100644 --- a/docs/assets/js/popper.min.js +++ b/docs/assets/js/popper.min.js @@ -1,4 +1,847 @@ /* Copyright (C) Federico Zivolo 2017 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). - */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1=o.clientWidth&&i>=o.clientHeight}),l=0i[e]&&!t.escapeWithReference&&(n=V(p[o],i[e]-('right'===e?p.width:p.height))),se({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=de({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=_,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var n=e.placement.split('-')[0],r=e.offsets,p=r.popper,s=r.reference,d=-1!==['left','right'].indexOf(n),a=d?'height':'width',l=d?'Top':'Left',f=l.toLowerCase(),m=d?'left':'top',c=d?'bottom':'right',g=O(i)[a];s[c]-gp[c]&&(e.offsets.popper[f]+=s[f]+g-p[c]);var u=s[f]+s[a]/2-g/2,b=t(e.instance.popper,'margin'+l).replace('px',''),y=u-h(e.offsets.popper)[f]-b;return y=X(V(p[a]-g,y),0),e.arrowElement=i,e.offsets.arrow={},e.offsets.arrow[f]=Math.round(y),e.offsets.arrow[m]='',e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,l=e.offsets.reference,f=_,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)f(l.top)||'bottom'===i&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===i&&c||'right'===i&&h||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&c||y&&'end'===r&&h||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=de({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=h(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right= o.clientWidth && i >= o.clientHeight; + }), + l = 0 < a.length ? a[0].key : d[0].key, + f = e.split("-")[1]; + return l + (f ? "-" + f : ""); + } + function x(e, t, o) { + var i = d(t, o); + return u(o, i); + } + function O(e) { + var t = window.getComputedStyle(e), + o = parseFloat(t.marginTop) + parseFloat(t.marginBottom), + i = parseFloat(t.marginLeft) + parseFloat(t.marginRight), + n = { width: e.offsetWidth + i, height: e.offsetHeight + o }; + return n; + } + function L(e) { + var t = { left: "right", right: "left", bottom: "top", top: "bottom" }; + return e.replace(/left|right|bottom|top/g, function(e) { + return t[e]; + }); + } + function S(e, t, o) { + o = o.split("-")[0]; + var i = O(e), + n = { width: i.width, height: i.height }, + r = -1 !== ["right", "left"].indexOf(o), + p = r ? "top" : "left", + s = r ? "left" : "top", + d = r ? "height" : "width", + a = r ? "width" : "height"; + return n[p] = t[p] + t[d] / 2 - i[d] / 2, n[s] = o === s ? t[s] - i[a] : t[L(s)], n; + } + function T(e, t) { + return Array.prototype.find ? e.find(t) : e.filter(t)[0]; + } + function C(e, t, o) { + if (Array.prototype.findIndex) { + return e.findIndex(function(e) { + return e[t] === o; + }); + } + var i = T(e, function(e) { + return e[t] === o; + }); + return e.indexOf(i); + } + function N(t, o, i) { + var n = void 0 === i ? t : t.slice(0, C(t, "name", i)); + return n.forEach(function(t) { + t.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); + var i = t.function || t.fn; + t.enabled && e(i) + && (o.offsets.popper = h(o.offsets.popper), o.offsets.reference = h(o.offsets.reference), o = i(o, t)); + }), + o; + } + function k() { + if (!this.state.isDestroyed) { + var e = { instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {} }; + e.offsets.reference = x(this.state, this.popper, this.reference), + e.placement = v( + this.options.placement, + e.offsets.reference, + this.popper, + this.reference, + this.options.modifiers.flip.boundariesElement, + this.options.modifiers.flip.padding, + ), + e.originalPlacement = e.placement, + e.offsets.popper = S(this.popper, e.offsets.reference, e.placement), + e.offsets.popper.position = "absolute", + e = N(this.modifiers, e), + this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)); + } + } + function W(e, t) { + return e.some(function(e) { + var o = e.name, i = e.enabled; + return i && o === t; + }); + } + function B(e) { + for ( + var t = [!1, "ms", "Webkit", "Moz", "O"], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; + n < t.length - 1; + n++ + ) { + var i = t[n], r = i ? "" + i + o : e; + if ("undefined" != typeof window.document.body.style[r]) return r; + } + return null; + } + function P() { + return this.state.isDestroyed = !0, + W(this.modifiers, "applyStyle") + && (this.popper.removeAttribute("x-placement"), + this.popper.style.left = "", + this.popper.style.position = "", + this.popper.style.top = "", + this.popper.style[B("transform")] = ""), + this.disableEventListeners(), + this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), + this; + } + function D(e, t, o, i) { + var r = "BODY" === e.nodeName, p = r ? window : e; + p.addEventListener(t, o, { passive: !0 }), r || D(n(p.parentNode), t, o, i), i.push(p); + } + function H(e, t, o, i) { + o.updateBound = i, window.addEventListener("resize", o.updateBound, { passive: !0 }); + var r = n(e); + return D(r, "scroll", o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o; + } + function A() { + this.state.eventsEnabled || (this.state = H(this.reference, this.options, this.state, this.scheduleUpdate)); + } + function M(e, t) { + return window.removeEventListener("resize", t.updateBound), + t.scrollParents.forEach(function(e) { + e.removeEventListener("scroll", t.updateBound); + }), + t.updateBound = null, + t.scrollParents = [], + t.scrollElement = null, + t.eventsEnabled = !1, + t; + } + function I() { + this.state.eventsEnabled + && (window.cancelAnimationFrame(this.scheduleUpdate), this.state = M(this.reference, this.state)); + } + function R(e) { + return "" !== e && !isNaN(parseFloat(e)) && isFinite(e); + } + function U(e, t) { + Object.keys(t).forEach(function(o) { + var i = ""; + -1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(o) && R(t[o]) && (i = "px"), + e.style[o] = t[o] + i; + }); + } + function Y(e, t) { + Object.keys(t).forEach(function(o) { + var i = t[o]; + !1 === i ? e.removeAttribute(o) : e.setAttribute(o, t[o]); + }); + } + function F(e, t, o) { + var i = T(e, function(e) { + var o = e.name; + return o === t; + }), + n = !!i && e.some(function(e) { + return e.name === o && e.enabled && e.order < i.order; + }); + if (!n) { + var r = "`" + t + "`"; + console.warn( + "`" + o + "`" + " modifier is required by " + r + " modifier in order to work, be sure to include it before " + + r + "!", + ); + } + return n; + } + function j(e) { + return "end" === e ? "start" : "start" === e ? "end" : e; + } + function K(e) { + var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], + o = le.indexOf(e), + i = le.slice(o + 1).concat(le.slice(0, o)); + return t ? i.reverse() : i; + } + function q(e, t, o, i) { + var n = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +n[1], p = n[2]; + if (!r) return e; + if (0 === p.indexOf("%")) { + var s; + switch (p) { + case "%p": + s = o; + break; + case "%": + case "%r": + default: + s = i; + } + var d = h(s); + return d[t] / 100 * r; + } + if ("vh" === p || "vw" === p) { + var a; + return a = "vh" === p + ? X(document.documentElement.clientHeight, window.innerHeight || 0) + : X(document.documentElement.clientWidth, window.innerWidth || 0), + a / 100 * r; + } + return r; + } + function G(e, t, o, i) { + var n = [0, 0], + r = -1 !== ["right", "left"].indexOf(i), + p = e.split(/(\+|\-)/).map(function(e) { + return e.trim(); + }), + s = p.indexOf(T(p, function(e) { + return -1 !== e.search(/,|\s/); + })); + p[s] && -1 === p[s].indexOf(",") + && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); + var d = /\s*,\s*|\s+/, + a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))]; + return a = a.map(function(e, i) { + var n = (1 === i ? !r : r) ? "height" : "width", p = !1; + return e.reduce(function(e, t) { + return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) + ? (e[e.length - 1] = t, p = !0, e) + : p + ? (e[e.length - 1] += t, p = !1, e) + : e.concat(t); + }, []).map(function(e) { + return q(e, n, t, o); + }); + }), + a.forEach(function(e, t) { + e.forEach(function(o, i) { + R(o) && (n[t] += o * ("-" === e[i - 1] ? -1 : 1)); + }); + }), + n; + } + function z(e, t) { + var o, i = t.offset, n = e.placement, r = e.offsets, p = r.popper, s = r.reference, d = n.split("-")[0]; + return o = R(+i) ? [+i, 0] : G(i, p, s, d), + "left" === d + ? (p.top += o[0], p.left -= o[1]) + : "right" === d + ? (p.top += o[0], p.left += o[1]) + : "top" === d + ? (p.left += o[0], p.top -= o[1]) + : "bottom" === d && (p.left += o[0], p.top += o[1]), + e.popper = p, + e; + } + for ( + var V = Math.min, + _ = Math.floor, + X = Math.max, + Q = ["native code", "[object MutationObserverConstructor]"], + J = function(e) { + return Q.some(function(t) { + return -1 < (e || "").toString().indexOf(t); + }); + }, + Z = "undefined" != typeof window, + $ = ["Edge", "Trident", "Firefox"], + ee = 0, + te = 0; + te < $.length; + te += 1 + ) { + if (Z && 0 <= navigator.userAgent.indexOf($[te])) { + ee = 1; + break; + } + } + var i, + oe = Z && J(window.MutationObserver), + ie = oe + ? function(e) { + var t = !1, + o = 0, + i = document.createElement("span"), + n = new MutationObserver(function() { + e(), t = !1; + }); + return n.observe(i, { attributes: !0 }), function() { + t || (t = !0, i.setAttribute("x-index", o), ++o); + }; + } + : function(e) { + var t = !1; + return function() { + t || (t = !0, + setTimeout(function() { + t = !1, e(); + }, ee)); + }; + }, + ne = function() { + return void 0 == i && (i = -1 !== navigator.appVersion.indexOf("MSIE 10")), i; + }, + re = function(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); + }, + pe = function() { + function e(e, t) { + for (var o, n = 0; n < t.length; n++) { + o = t[n], + o.enumerable = o.enumerable || !1, + o.configurable = !0, + "value" in o && (o.writable = !0), + Object.defineProperty(e, o.key, o); + } + } + return function(t, o, i) { + return o && e(t.prototype, o), i && e(t, i), t; + }; + }(), + se = function(e, t, o) { + return t in e + ? Object.defineProperty(e, t, { value: o, enumerable: !0, configurable: !0, writable: !0 }) + : e[t] = o, + e; + }, + de = Object.assign || function(e) { + for (var t, o = 1; o < arguments.length; o++) { + for (var i in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); + } + return e; + }, + ae = [ + "auto-start", + "auto", + "auto-end", + "top-start", + "top", + "top-end", + "right-start", + "right", + "right-end", + "bottom-end", + "bottom", + "bottom-start", + "left-end", + "left", + "left-start", + ], + le = ae.slice(3), + fe = { FLIP: "flip", CLOCKWISE: "clockwise", COUNTERCLOCKWISE: "counterclockwise" }, + me = function() { + function t(o, i) { + var n = this, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; + re(this, t), + this.scheduleUpdate = function() { + return requestAnimationFrame(n.update); + }, + this.update = ie(this.update.bind(this)), + this.options = de({}, t.Defaults, r), + this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }, + this.reference = o.jquery ? o[0] : o, + this.popper = i.jquery ? i[0] : i, + this.options.modifiers = {}, + Object.keys(de({}, t.Defaults.modifiers, r.modifiers)).forEach(function(e) { + n.options.modifiers[e] = de({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {}); + }), + this.modifiers = Object.keys(this.options.modifiers).map(function(e) { + return de({ name: e }, n.options.modifiers[e]); + }).sort(function(e, t) { + return e.order - t.order; + }), + this.modifiers.forEach(function(t) { + t.enabled && e(t.onLoad) && t.onLoad(n.reference, n.popper, n.options, t, n.state); + }), + this.update(); + var p = this.options.eventsEnabled; + p && this.enableEventListeners(), this.state.eventsEnabled = p; + } + return pe(t, [{ + key: "update", + value: function() { + return k.call(this); + }, + }, { + key: "destroy", + value: function() { + return P.call(this); + }, + }, { + key: "enableEventListeners", + value: function() { + return A.call(this); + }, + }, { + key: "disableEventListeners", + value: function() { + return I.call(this); + }, + }]), + t; + }(); + return me.Utils = ("undefined" == typeof window ? global : window).PopperUtils, + me.placements = ae, + me.Defaults = { + placement: "bottom", + eventsEnabled: !0, + removeOnDestroy: !1, + onCreate: function() {}, + onUpdate: function() {}, + modifiers: { + shift: { + order: 100, + enabled: !0, + fn: function(e) { + var t = e.placement, o = t.split("-")[0], i = t.split("-")[1]; + if (i) { + var n = e.offsets, + r = n.reference, + p = n.popper, + s = -1 !== ["bottom", "top"].indexOf(o), + d = s ? "left" : "top", + a = s ? "width" : "height", + l = { start: se({}, d, r[d]), end: se({}, d, r[d] + r[a] - p[a]) }; + e.offsets.popper = de({}, p, l[i]); + } + return e; + }, + }, + offset: { order: 200, enabled: !0, fn: z, offset: 0 }, + preventOverflow: { + order: 300, + enabled: !0, + fn: function(e, t) { + var o = t.boundariesElement || r(e.instance.popper); + e.instance.reference === o && (o = r(o)); + var i = w(e.instance.popper, e.instance.reference, t.padding, o); + t.boundaries = i; + var n = t.priority, + p = e.offsets.popper, + s = { + primary: function(e) { + var o = p[e]; + return p[e] < i[e] && !t.escapeWithReference && (o = X(p[e], i[e])), se({}, e, o); + }, + secondary: function(e) { + var o = "right" === e ? "left" : "top", n = p[o]; + return p[e] > i[e] && !t.escapeWithReference + && (n = V(p[o], i[e] - ("right" === e ? p.width : p.height))), + se({}, o, n); + }, + }; + return n.forEach(function(e) { + var t = -1 === ["left", "top"].indexOf(e) ? "secondary" : "primary"; + p = de({}, p, s[t](e)); + }), + e.offsets.popper = p, + e; + }, + priority: ["left", "right", "top", "bottom"], + padding: 5, + boundariesElement: "scrollParent", + }, + keepTogether: { + order: 400, + enabled: !0, + fn: function(e) { + var t = e.offsets, + o = t.popper, + i = t.reference, + n = e.placement.split("-")[0], + r = _, + p = -1 !== ["top", "bottom"].indexOf(n), + s = p ? "right" : "bottom", + d = p ? "left" : "top", + a = p ? "width" : "height"; + return o[s] < r(i[d]) && (e.offsets.popper[d] = r(i[d]) - o[a]), + o[d] > r(i[s]) && (e.offsets.popper[d] = r(i[s])), + e; + }, + }, + arrow: { + order: 500, + enabled: !0, + fn: function(e, o) { + if (!F(e.instance.modifiers, "arrow", "keepTogether")) return e; + var i = o.element; + if ("string" == typeof i) { + if (i = e.instance.popper.querySelector(i), !i) return e; + else if (!e.instance.popper.contains(i)) { + return console.warn( + "WARNING: `arrow.element` must be child of its popper element!", + ), + e; + } + } + var n = e.placement.split("-")[0], + r = e.offsets, + p = r.popper, + s = r.reference, + d = -1 !== ["left", "right"].indexOf(n), + a = d ? "height" : "width", + l = d ? "Top" : "Left", + f = l.toLowerCase(), + m = d ? "left" : "top", + c = d ? "bottom" : "right", + g = O(i)[a]; + s[c] - g < p[f] && (e.offsets.popper[f] -= p[f] - (s[c] - g)), + s[f] + g > p[c] && (e.offsets.popper[f] += s[f] + g - p[c]); + var u = s[f] + s[a] / 2 - g / 2, + b = t(e.instance.popper, "margin" + l).replace("px", ""), + y = u - h(e.offsets.popper)[f] - b; + return y = X(V(p[a] - g, y), 0), + e.arrowElement = i, + e.offsets.arrow = {}, + e.offsets.arrow[f] = Math.round(y), + e.offsets.arrow[m] = "", + e; + }, + element: "[x-arrow]", + }, + flip: { + order: 600, + enabled: !0, + fn: function(e, t) { + if (W(e.instance.modifiers, "inner")) return e; + if (e.flipped && e.placement === e.originalPlacement) return e; + var o = w(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement), + i = e.placement.split("-")[0], + n = L(i), + r = e.placement.split("-")[1] || "", + p = []; + switch (t.behavior) { + case fe.FLIP: + p = [i, n]; + break; + case fe.CLOCKWISE: + p = K(i); + break; + case fe.COUNTERCLOCKWISE: + p = K(i, !0); + break; + default: + p = t.behavior; + } + return p.forEach(function(s, d) { + if (i !== s || p.length === d + 1) return e; + i = e.placement.split("-")[0], n = L(i); + var a = e.offsets.popper, + l = e.offsets.reference, + f = _, + m = "left" === i && f(a.right) > f(l.left) || "right" === i && f(a.left) < f(l.right) + || "top" === i && f(a.bottom) > f(l.top) || "bottom" === i && f(a.top) < f(l.bottom), + c = f(a.left) < f(o.left), + h = f(a.right) > f(o.right), + g = f(a.top) < f(o.top), + u = f(a.bottom) > f(o.bottom), + b = "left" === i && c || "right" === i && h || "top" === i && g || "bottom" === i && u, + y = -1 !== ["top", "bottom"].indexOf(i), + w = !!t.flipVariations + && (y && "start" === r && c || y && "end" === r && h || !y && "start" === r && g + || !y && "end" === r && u); + (m || b || w) + && (e.flipped = !0, + (m || b) && (i = p[d + 1]), + w && (r = j(r)), + e.placement = i + (r ? "-" + r : ""), + e.offsets.popper = de({}, e.offsets.popper, S(e.instance.popper, e.offsets.reference, e.placement)), + e = N(e.instance.modifiers, e, "flip")); + }), + e; + }, + behavior: "flip", + padding: 5, + boundariesElement: "viewport", + }, + inner: { + order: 700, + enabled: !1, + fn: function(e) { + var t = e.placement, + o = t.split("-")[0], + i = e.offsets, + n = i.popper, + r = i.reference, + p = -1 !== ["left", "right"].indexOf(o), + s = -1 === ["top", "left"].indexOf(o); + return n[p ? "left" : "top"] = r[o] - (s ? n[p ? "width" : "height"] : 0), + e.placement = L(t), + e.offsets.popper = h(n), + e; + }, + }, + hide: { + order: 800, + enabled: !0, + fn: function(e) { + if (!F(e.instance.modifiers, "hide", "preventOverflow")) return e; + var t = e.offsets.reference, + o = T(e.instance.modifiers, function(e) { + return "preventOverflow" === e.name; + }).boundaries; + if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) { + if (!0 === e.hide) return e; + e.hide = !0, e.attributes["x-out-of-boundaries"] = ""; + } else { + if (!1 === e.hide) return e; + e.hide = !1, e.attributes["x-out-of-boundaries"] = !1; + } + return e; + }, + }, + computeStyle: { + order: 850, + enabled: !0, + fn: function(e, t) { + var o = t.x, + i = t.y, + n = e.offsets.popper, + p = T(e.instance.modifiers, function(e) { + return "applyStyle" === e.name; + }).gpuAcceleration; + void 0 !== p + && console.warn( + "WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!", + ); + var s, + d, + a = void 0 === p ? t.gpuAcceleration : p, + l = r(e.instance.popper), + f = g(l), + m = { position: n.position }, + c = { left: _(n.left), top: _(n.top), bottom: _(n.bottom), right: _(n.right) }, + h = "bottom" === o ? "top" : "bottom", + u = "right" === i ? "left" : "right", + b = B("transform"); + if ( + d = "bottom" == h ? -f.height + c.bottom : c.top, s = "right" == u ? -f.width + c.right : c.left, a && b + ) m[b] = "translate3d(" + s + "px, " + d + "px, 0)", m[h] = 0, m[u] = 0, m.willChange = "transform"; + else { + var y = "bottom" == h ? -1 : 1, w = "right" == u ? -1 : 1; + m[h] = d * y, m[u] = s * w, m.willChange = h + ", " + u; + } + var E = { "x-placement": e.placement }; + return e.attributes = de({}, E, e.attributes), + e.styles = de({}, m, e.styles), + e.arrowStyles = de({}, e.offsets.arrow, e.arrowStyles), + e; + }, + gpuAcceleration: !0, + x: "bottom", + y: "right", + }, + applyStyle: { + order: 900, + enabled: !0, + fn: function(e) { + return U(e.instance.popper, e.styles), + Y(e.instance.popper, e.attributes), + e.arrowElement && Object.keys(e.arrowStyles).length && U(e.arrowElement, e.arrowStyles), + e; + }, + onLoad: function(e, t, o, i, n) { + var r = x(n, t, e), + p = v(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding); + return t.setAttribute("x-placement", p), U(t, { position: "absolute" }), o; + }, + gpuAcceleration: void 0, + }, + }, + }, + me; +}); diff --git a/docs/assets/js/validator.js b/docs/assets/js/validator.js index 48e0d87e5f..b105305460 100644 --- a/docs/assets/js/validator.js +++ b/docs/assets/js/validator.js @@ -1,362 +1,373 @@ - -/* ======================================================================== - * Bootstrap (plugin): validator.js v0.10.2 - * ======================================================================== - * The MIT License (MIT) - * - * Copyright (c) 2015 Cina Saffary. - * Made by @1000hz in the style of Bootstrap 3 era @fat - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // VALIDATOR CLASS DEFINITION - // ========================== - - function getValue($el) { - return $el.is('[type="checkbox"]') ? $el.prop('checked') : - $el.is('[type="radio"]') ? !!$('[name="' + $el.attr('name') + '"]:checked').length : - $.trim($el.val()) - } - - var Validator = function (element, options) { - this.options = options - this.$element = $(element) - this.$inputs = this.$element.find(Validator.INPUT_SELECTOR) - this.$btn = $('button[type="submit"], input[type="submit"]') - .filter('[form="' + this.$element.attr('id') + '"]') - .add(this.$element.find('input[type="submit"], button[type="submit"]')) - - options.errors = $.extend({}, Validator.DEFAULTS.errors, options.errors) - - for (var custom in options.custom) { - if (!options.errors[custom]) throw new Error('Missing default error message for custom validator: ' + custom) - } - - $.extend(Validator.VALIDATORS, options.custom) - - this.$element.attr('novalidate', true) // disable automatic native validation - this.toggleSubmit() - - this.$element.on('input.bs.validator change.bs.validator focusout.bs.validator', Validator.INPUT_SELECTOR, $.proxy(this.onInput, this)) - this.$element.on('submit.bs.validator', $.proxy(this.onSubmit, this)) - - this.$element.find('[data-match]').each(function () { - var $this = $(this) - var target = $this.data('match') - - $(target).on('input.bs.validator', function (e) { - getValue($this) && $this.trigger('input.bs.validator') - }) - }) - } - - Validator.INPUT_SELECTOR = ':input:not([type="submit"], button):enabled:visible' - - Validator.FOCUS_OFFSET = 20 - - Validator.DEFAULTS = { - delay: 500, - html: false, - disable: true, - focus: true, - custom: {}, - errors: { - match: 'Does not match', - minlength: 'Not long enough' - }, - feedback: { - success: 'glyphicon-ok', - error: 'glyphicon-remove' - } - } - - Validator.VALIDATORS = { - 'native': function ($el) { - var el = $el[0] - return el.checkValidity ? el.checkValidity() : true - }, - 'match': function ($el) { - var target = $el.data('match') - return !$el.val() || $el.val() === $(target).val() - }, - 'minlength': function ($el) { - var minlength = $el.data('minlength') - return !$el.val() || $el.val().length >= minlength - } - } - - Validator.prototype.onInput = function (e) { - var self = this - var $el = $(e.target) - var deferErrors = e.type !== 'focusout' - this.validateInput($el, deferErrors).done(function () { - self.toggleSubmit() - }) - } - - Validator.prototype.validateInput = function ($el, deferErrors) { - var value = getValue($el) - var prevValue = $el.data('bs.validator.previous') - var prevErrors = $el.data('bs.validator.errors') - var errors - - if (prevValue === value) return $.Deferred().resolve() - else $el.data('bs.validator.previous', value) - - if ($el.is('[type="radio"]')) $el = this.$element.find('input[name="' + $el.attr('name') + '"]') - - var e = $.Event('validate.bs.validator', {relatedTarget: $el[0]}) - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - - var self = this - - return this.runValidators($el).done(function (errors) { - $el.data('bs.validator.errors', errors) - - errors.length - ? deferErrors ? self.defer($el, self.showErrors) : self.showErrors($el) - : self.clearErrors($el) - - if (!prevErrors || errors.toString() !== prevErrors.toString()) { - e = errors.length - ? $.Event('invalid.bs.validator', {relatedTarget: $el[0], detail: errors}) - : $.Event('valid.bs.validator', {relatedTarget: $el[0], detail: prevErrors}) - - self.$element.trigger(e) - } - - self.toggleSubmit() - - self.$element.trigger($.Event('validated.bs.validator', {relatedTarget: $el[0]})) - }) - } - - - Validator.prototype.runValidators = function ($el) { - var errors = [] - var deferred = $.Deferred() - var options = this.options - - $el.data('bs.validator.deferred') && $el.data('bs.validator.deferred').reject() - $el.data('bs.validator.deferred', deferred) - - function getErrorMessage(key) { - return $el.data(key + '-error') - || $el.data('error') - || key == 'native' && $el[0].validationMessage - || options.errors[key] - } - - $.each(Validator.VALIDATORS, $.proxy(function (key, validator) { - if ((getValue($el) || $el.attr('required')) && - ($el.data(key) || key == 'native') && - !validator.call(this, $el)) { - var error = getErrorMessage(key) - !~errors.indexOf(error) && errors.push(error) - } - }, this)) - - if (!errors.length && getValue($el) && $el.data('remote')) { - this.defer($el, function () { - var data = {} - data[$el.attr('name')] = getValue($el) - $.get($el.data('remote'), data) - .fail(function (jqXHR, textStatus, error) { errors.push(getErrorMessage('remote') || error) }) - .always(function () { deferred.resolve(errors)}) - }) - } else deferred.resolve(errors) - - return deferred.promise() - } - - Validator.prototype.validate = function () { - var self = this - - $.when(this.$inputs.map(function (el) { - return self.validateInput($(this), false) - })).then(function () { - self.toggleSubmit() - self.focusError() - }) - - return this - } - - Validator.prototype.focusError = function () { - if (!this.options.focus) return - - var $input = $(".has-error:first :input") - if ($input.length === 0) return - - $(document.body).animate({scrollTop: $input.offset().top - Validator.FOCUS_OFFSET}, 250) - $input.focus() - } - - Validator.prototype.showErrors = function ($el) { - var method = this.options.html ? 'html' : 'text' - var errors = $el.data('bs.validator.errors') - var $group = $el.closest('.form-group') - var $block = $group.find('.help-block.with-errors') - var $feedback = $group.find('.form-control-feedback') - - if (!errors.length) return - - errors = $('
    ') - .addClass('list-unstyled') - .append($.map(errors, function (error) { return $('
  • ')[method](error) })) - - $block.data('bs.validator.originalContent') === undefined && $block.data('bs.validator.originalContent', $block.html()) - $block.empty().append(errors) - $group.addClass('has-error has-danger') - - $group.hasClass('has-feedback') - && $feedback.removeClass(this.options.feedback.success) - && $feedback.addClass(this.options.feedback.error) - && $group.removeClass('has-success') - } - - Validator.prototype.clearErrors = function ($el) { - var $group = $el.closest('.form-group') - var $block = $group.find('.help-block.with-errors') - var $feedback = $group.find('.form-control-feedback') - - $block.html($block.data('bs.validator.originalContent')) - $group.removeClass('has-error has-danger') - - $group.hasClass('has-feedback') - && $feedback.removeClass(this.options.feedback.error) - && getValue($el) - && $feedback.addClass(this.options.feedback.success) - && $group.addClass('has-success') - } - - Validator.prototype.hasErrors = function () { - function fieldErrors() { - return !!($(this).data('bs.validator.errors') || []).length - } - - return !!this.$inputs.filter(fieldErrors).length - } - - Validator.prototype.isIncomplete = function () { - function fieldIncomplete() { - return !getValue($(this)) - } - - return !!this.$inputs.filter('[required]').filter(fieldIncomplete).length - } - - Validator.prototype.onSubmit = function (e) { - this.validate() - if (this.isIncomplete() || this.hasErrors()) e.preventDefault() - } - - Validator.prototype.toggleSubmit = function () { - if (!this.options.disable) return - this.$btn.toggleClass('disabled', this.isIncomplete() || this.hasErrors()) - } - - Validator.prototype.defer = function ($el, callback) { - callback = $.proxy(callback, this, $el) - if (!this.options.delay) return callback() - window.clearTimeout($el.data('bs.validator.timeout')) - $el.data('bs.validator.timeout', window.setTimeout(callback, this.options.delay)) - } - - Validator.prototype.destroy = function () { - this.$element - .removeAttr('novalidate') - .removeData('bs.validator') - .off('.bs.validator') - .find('.form-control-feedback') - .removeClass([this.options.feedback.error, this.options.feedback.success].join(' ')) - - this.$inputs - .off('.bs.validator') - .removeData(['bs.validator.errors', 'bs.validator.deferred', 'bs.validator.previous']) - .each(function () { - var $this = $(this) - var timeout = $this.data('bs.validator.timeout') - window.clearTimeout(timeout) && $this.removeData('bs.validator.timeout') - }) - - this.$element.find('.help-block.with-errors').each(function () { - var $this = $(this) - var originalContent = $this.data('bs.validator.originalContent') - - $this - .removeData('bs.validator.originalContent') - .html(originalContent) - }) - - this.$element.find('input[type="submit"], button[type="submit"]').removeClass('disabled') - - this.$element.find('.has-error, .has-danger').removeClass('has-error has-danger') - - return this - } - - // VALIDATOR PLUGIN DEFINITION - // =========================== - - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var options = $.extend({}, Validator.DEFAULTS, $this.data(), typeof option == 'object' && option) - var data = $this.data('bs.validator') - - if (!data && option == 'destroy') return - if (!data) $this.data('bs.validator', (data = new Validator(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.validator - - $.fn.validator = Plugin - $.fn.validator.Constructor = Validator - - - // VALIDATOR NO CONFLICT - // ===================== - - $.fn.validator.noConflict = function () { - $.fn.validator = old - return this - } - - - // VALIDATOR DATA-API - // ================== - - $(window).on('load', function () { - $('form[data-toggle="validator"]').each(function () { - var $form = $(this) - Plugin.call($form, $form.data()) - }) - }) - -}(jQuery); +/* ======================================================================== + * Bootstrap (plugin): validator.js v0.10.2 + * ======================================================================== + * The MIT License (MIT) + * + * Copyright (c) 2015 Cina Saffary. + * Made by @1000hz in the style of Bootstrap 3 era @fat + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * ======================================================================== */ + ++function($) { + "use strict"; + + // VALIDATOR CLASS DEFINITION + // ========================== + + function getValue($el) { + return $el.is("[type=\"checkbox\"]") + ? $el.prop("checked") + : $el.is("[type=\"radio\"]") + ? !!$("[name=\"" + $el.attr("name") + "\"]:checked").length + : $.trim($el.val()); + } + + var Validator = function(element, options) { + this.options = options; + this.$element = $(element); + this.$inputs = this.$element.find(Validator.INPUT_SELECTOR); + this.$btn = $("button[type=\"submit\"], input[type=\"submit\"]") + .filter("[form=\"" + this.$element.attr("id") + "\"]") + .add(this.$element.find("input[type=\"submit\"], button[type=\"submit\"]")); + + options.errors = $.extend({}, Validator.DEFAULTS.errors, options.errors); + + for (var custom in options.custom) { + if (!options.errors[custom]) throw new Error("Missing default error message for custom validator: " + custom); + } + + $.extend(Validator.VALIDATORS, options.custom); + + this.$element.attr("novalidate", true); // disable automatic native validation + this.toggleSubmit(); + + this.$element.on( + "input.bs.validator change.bs.validator focusout.bs.validator", + Validator.INPUT_SELECTOR, + $.proxy(this.onInput, this), + ); + this.$element.on("submit.bs.validator", $.proxy(this.onSubmit, this)); + + this.$element.find("[data-match]").each(function() { + var $this = $(this); + var target = $this.data("match"); + + $(target).on("input.bs.validator", function(e) { + getValue($this) && $this.trigger("input.bs.validator"); + }); + }); + }; + + Validator.INPUT_SELECTOR = ":input:not([type=\"submit\"], button):enabled:visible"; + + Validator.FOCUS_OFFSET = 20; + + Validator.DEFAULTS = { + delay: 500, + html: false, + disable: true, + focus: true, + custom: {}, + errors: { + match: "Does not match", + minlength: "Not long enough", + }, + feedback: { + success: "glyphicon-ok", + error: "glyphicon-remove", + }, + }; + + Validator.VALIDATORS = { + "native": function($el) { + var el = $el[0]; + return el.checkValidity ? el.checkValidity() : true; + }, + "match": function($el) { + var target = $el.data("match"); + return !$el.val() || $el.val() === $(target).val(); + }, + "minlength": function($el) { + var minlength = $el.data("minlength"); + return !$el.val() || $el.val().length >= minlength; + }, + }; + + Validator.prototype.onInput = function(e) { + var self = this; + var $el = $(e.target); + var deferErrors = e.type !== "focusout"; + this.validateInput($el, deferErrors).done(function() { + self.toggleSubmit(); + }); + }; + + Validator.prototype.validateInput = function($el, deferErrors) { + var value = getValue($el); + var prevValue = $el.data("bs.validator.previous"); + var prevErrors = $el.data("bs.validator.errors"); + var errors; + + if (prevValue === value) return $.Deferred().resolve(); + else $el.data("bs.validator.previous", value); + + if ($el.is("[type=\"radio\"]")) $el = this.$element.find("input[name=\"" + $el.attr("name") + "\"]"); + + var e = $.Event("validate.bs.validator", { relatedTarget: $el[0] }); + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + + var self = this; + + return this.runValidators($el).done(function(errors) { + $el.data("bs.validator.errors", errors); + + errors.length + ? deferErrors ? self.defer($el, self.showErrors) : self.showErrors($el) + : self.clearErrors($el); + + if (!prevErrors || errors.toString() !== prevErrors.toString()) { + e = errors.length + ? $.Event("invalid.bs.validator", { relatedTarget: $el[0], detail: errors }) + : $.Event("valid.bs.validator", { relatedTarget: $el[0], detail: prevErrors }); + + self.$element.trigger(e); + } + + self.toggleSubmit(); + + self.$element.trigger($.Event("validated.bs.validator", { relatedTarget: $el[0] })); + }); + }; + + Validator.prototype.runValidators = function($el) { + var errors = []; + var deferred = $.Deferred(); + var options = this.options; + + $el.data("bs.validator.deferred") && $el.data("bs.validator.deferred").reject(); + $el.data("bs.validator.deferred", deferred); + + function getErrorMessage(key) { + return $el.data(key + "-error") + || $el.data("error") + || key == "native" && $el[0].validationMessage + || options.errors[key]; + } + + $.each( + Validator.VALIDATORS, + $.proxy(function(key, validator) { + if ( + (getValue($el) || $el.attr("required")) + && ($el.data(key) || key == "native") + && !validator.call(this, $el) + ) { + var error = getErrorMessage(key); + !~errors.indexOf(error) && errors.push(error); + } + }, this), + ); + + if (!errors.length && getValue($el) && $el.data("remote")) { + this.defer($el, function() { + var data = {}; + data[$el.attr("name")] = getValue($el); + $.get($el.data("remote"), data) + .fail(function(jqXHR, textStatus, error) { + errors.push(getErrorMessage("remote") || error); + }) + .always(function() { + deferred.resolve(errors); + }); + }); + } else deferred.resolve(errors); + + return deferred.promise(); + }; + + Validator.prototype.validate = function() { + var self = this; + + $.when(this.$inputs.map(function(el) { + return self.validateInput($(this), false); + })).then(function() { + self.toggleSubmit(); + self.focusError(); + }); + + return this; + }; + + Validator.prototype.focusError = function() { + if (!this.options.focus) return; + + var $input = $(".has-error:first :input"); + if ($input.length === 0) return; + + $(document.body).animate({ scrollTop: $input.offset().top - Validator.FOCUS_OFFSET }, 250); + $input.focus(); + }; + + Validator.prototype.showErrors = function($el) { + var method = this.options.html ? "html" : "text"; + var errors = $el.data("bs.validator.errors"); + var $group = $el.closest(".form-group"); + var $block = $group.find(".help-block.with-errors"); + var $feedback = $group.find(".form-control-feedback"); + + if (!errors.length) return; + + errors = $("
      ") + .addClass("list-unstyled") + .append($.map(errors, function(error) { + return $("
    • ")[method](error); + })); + + $block.data("bs.validator.originalContent") === undefined + && $block.data("bs.validator.originalContent", $block.html()); + $block.empty().append(errors); + $group.addClass("has-error has-danger"); + + $group.hasClass("has-feedback") + && $feedback.removeClass(this.options.feedback.success) + && $feedback.addClass(this.options.feedback.error) + && $group.removeClass("has-success"); + }; + + Validator.prototype.clearErrors = function($el) { + var $group = $el.closest(".form-group"); + var $block = $group.find(".help-block.with-errors"); + var $feedback = $group.find(".form-control-feedback"); + + $block.html($block.data("bs.validator.originalContent")); + $group.removeClass("has-error has-danger"); + + $group.hasClass("has-feedback") + && $feedback.removeClass(this.options.feedback.error) + && getValue($el) + && $feedback.addClass(this.options.feedback.success) + && $group.addClass("has-success"); + }; + + Validator.prototype.hasErrors = function() { + function fieldErrors() { + return !!($(this).data("bs.validator.errors") || []).length; + } + + return !!this.$inputs.filter(fieldErrors).length; + }; + + Validator.prototype.isIncomplete = function() { + function fieldIncomplete() { + return !getValue($(this)); + } + + return !!this.$inputs.filter("[required]").filter(fieldIncomplete).length; + }; + + Validator.prototype.onSubmit = function(e) { + this.validate(); + if (this.isIncomplete() || this.hasErrors()) e.preventDefault(); + }; + + Validator.prototype.toggleSubmit = function() { + if (!this.options.disable) return; + this.$btn.toggleClass("disabled", this.isIncomplete() || this.hasErrors()); + }; + + Validator.prototype.defer = function($el, callback) { + callback = $.proxy(callback, this, $el); + if (!this.options.delay) return callback(); + window.clearTimeout($el.data("bs.validator.timeout")); + $el.data("bs.validator.timeout", window.setTimeout(callback, this.options.delay)); + }; + + Validator.prototype.destroy = function() { + this.$element + .removeAttr("novalidate") + .removeData("bs.validator") + .off(".bs.validator") + .find(".form-control-feedback") + .removeClass([this.options.feedback.error, this.options.feedback.success].join(" ")); + + this.$inputs + .off(".bs.validator") + .removeData(["bs.validator.errors", "bs.validator.deferred", "bs.validator.previous"]) + .each(function() { + var $this = $(this); + var timeout = $this.data("bs.validator.timeout"); + window.clearTimeout(timeout) && $this.removeData("bs.validator.timeout"); + }); + + this.$element.find(".help-block.with-errors").each(function() { + var $this = $(this); + var originalContent = $this.data("bs.validator.originalContent"); + + $this + .removeData("bs.validator.originalContent") + .html(originalContent); + }); + + this.$element.find("input[type=\"submit\"], button[type=\"submit\"]").removeClass("disabled"); + + this.$element.find(".has-error, .has-danger").removeClass("has-error has-danger"); + + return this; + }; + + // VALIDATOR PLUGIN DEFINITION + // =========================== + + function Plugin(option) { + return this.each(function() { + var $this = $(this); + var options = $.extend({}, Validator.DEFAULTS, $this.data(), typeof option == "object" && option); + var data = $this.data("bs.validator"); + + if (!data && option == "destroy") return; + if (!data) $this.data("bs.validator", data = new Validator(this, options)); + if (typeof option == "string") data[option](); + }); + } + + var old = $.fn.validator; + + $.fn.validator = Plugin; + $.fn.validator.Constructor = Validator; + + // VALIDATOR NO CONFLICT + // ===================== + + $.fn.validator.noConflict = function() { + $.fn.validator = old; + return this; + }; + + // VALIDATOR DATA-API + // ================== + + $(window).on("load", function() { + $("form[data-toggle=\"validator\"]").each(function() { + var $form = $(this); + Plugin.call($form, $form.data()); + }); + }); +}(jQuery); diff --git a/docs/conversion.md b/docs/conversion.md index 86e79b4dbf..31b22764cd 100644 --- a/docs/conversion.md +++ b/docs/conversion.md @@ -9,8 +9,8 @@ redirect_from: # Conversion Matrix -* TOC -{:toc} +- TOC + {:toc} This document outlines all possible conversion details regarding `docker-compose.yaml` values to Kubernetes / OpenShift artifacts. @@ -21,23 +21,23 @@ We're doing our best to keep it up to date as soon as possible in our releases t ## Conversion Table -__Glossary:__ +**Glossary:** -- __✓:__ Converts -- __-:__ Not in this Docker Compose Version -- __n:__ Not yet implemented -- __x:__ Not applicable / no 1-1 conversion +- **✓:** Converts +- **-:** Not in this Docker Compose Version +- **n:** Not yet implemented +- **x:** Not applicable / no 1-1 conversion | Keys | V1 | V2 | V3 | Kubernetes / OpenShift | Notes | -|------------------------|----|----|----|----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| +| ---------------------- | -- | -- | -- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | build | ✓ | ✓ | ✓ | | Builds/Pushes to Docker repository. See [user guide on build and push image](https://kompose.io/user-guide/#build-and-push-image) | | build: context | ✓ | ✓ | ✓ | | | | build: dockerfile | ✓ | ✓ | ✓ | | | | build: args | n | n | n | | | | build: cache_from | - | - | n | | | -| cap_add | ✓ | ✓ | ✓ | Container.SecurityContext.Capabilities.Add | | -| cap_drop | ✓ | ✓ | ✓ | Container.SecurityContext.Capabilities.Drop | | -| command | ✓ | ✓ | ✓ | Container.Args | | +| cap_add | ✓ | ✓ | ✓ | Container.SecurityContext.Capabilities.Add | | +| cap_drop | ✓ | ✓ | ✓ | Container.SecurityContext.Capabilities.Drop | | +| command | ✓ | ✓ | ✓ | Container.Args | | | configs | n | n | ✓ | | | | configs: short-syntax | n | n | ✓ | | Only create configMap | | configs: long-syntax | n | n | ✓ | | If target path is /, ignore this and only create configMap | @@ -47,7 +47,7 @@ __Glossary:__ | deploy | - | - | ✓ | | | | deploy: mode | - | - | ✓ | | | | deploy: replicas | - | - | ✓ | Deployment.Spec.Replicas / DeploymentConfig.Spec.Replicas | | -| deploy: placement | - | - | ✓ | Affinity | | +| deploy: placement | - | - | ✓ | Affinity | | | deploy: update_config | - | - | ✓ | Workload.Spec.Strategy | Deployment / DeploymentConfig | | deploy: resources | - | - | ✓ | Containers.Resources.Limits.Memory / Containers.Resources.Limits.CPU | Support for memory as well as cpu | | deploy: restart_policy | - | - | ✓ | Pod generation | This generated a Pod, see the [user guide on restart](http://kompose.io/user-guide/#restart) | @@ -56,11 +56,11 @@ __Glossary:__ | depends_on | x | x | x | | | | dns | x | x | x | | Not used within Kubernetes. Kubernetes uses a managed DNS server | | dns_search | x | x | x | | See `dns` key | -| domainname | ✓ | ✓ | ✓ | SubDomain | | -| tmpfs | ✓ | ✓ | ✓ | Containers.Volumes.EmptyDir | Creates emptyDirvolume with medium set to Memory & mounts given directory inside container | -| entrypoint | ✓ | ✓ | ✓ | Container.Command | | +| domainname | ✓ | ✓ | ✓ | SubDomain | | +| tmpfs | ✓ | ✓ | ✓ | Containers.Volumes.EmptyDir | Creates emptyDirvolume with medium set to Memory & mounts given directory inside container | +| entrypoint | ✓ | ✓ | ✓ | Container.Command | | | env_file | n | n | ✓ | | | -| environment | ✓ | ✓ | ✓ | Container.Env | | +| environment | ✓ | ✓ | ✓ | Container.Env | | | expose | ✓ | ✓ | ✓ | Service.Spec.Ports | | | endpoint_mode | n | n | ✓ | | If endpoint_mode=vip, the created Service will be forced to set to NodePort type | | extends | ✓ | ✓ | ✓ | | Extends by utilizing the same image supplied | @@ -68,7 +68,7 @@ __Glossary:__ | extra_hosts | n | n | n | | | | group_add | ✓ | ✓ | ✓ | | | | healthcheck | - | n | ✓ | | | -| hostname | ✓ | ✓ | ✓ | HostName | | +| hostname | ✓ | ✓ | ✓ | HostName | | | image | ✓ | ✓ | ✓ | Deployment.Spec.Containers.Image | | | isolation | x | x | x | | Not applicable as this applies to Windows with HyperV support | | labels | ✓ | ✓ | ✓ | Metadata.Annotations | | @@ -78,7 +78,7 @@ __Glossary:__ | networks | ✓ | ✓ | ✓ | | See `networks` key | | networks: aliases | x | x | x | | See `networks` key | | networks: addresses | x | x | x | | See `networks` key | -| pid | ✓ | ✓ | ✓ | HostPID | | +| pid | ✓ | ✓ | ✓ | HostPID | | | ports | ✓ | ✓ | ✓ | Service.Spec.Ports | | | ports: short-syntax | ✓ | ✓ | ✓ | Service.Spec.Ports | | | ports: long-syntax | - | - | ✓ | Service.Spec.Ports | | @@ -86,7 +86,7 @@ __Glossary:__ | secrets: short-syntax | - | - | ✓ | Secret | External Secret is not Supported | | secrets: long-syntax | - | - | ✓ | Secret | External Secret is not Supported | | security_opt | x | x | x | | Kubernetes uses its own container naming scheme | -| stop_grace_period | ✓ | ✓ | ✓ | TerminationGracePeriodSeconds | | +| stop_grace_period | ✓ | ✓ | ✓ | TerminationGracePeriodSeconds | | | stop_signal | x | x | x | | Not supported within Kubernetes. See issue https://github.com/kubernetes/kubernetes/issues/30051 | | sysctls | n | n | n | | | | ulimits | x | x | x | | Not supported within Kubernetes. See issue https://github.com/kubernetes/kubernetes/issues/3595 | @@ -96,13 +96,13 @@ __Glossary:__ | volumes: long-syntax | - | - | ✓ | PersistentVolumeClaim | Creates a PersistentVolumeClaim. Can only be created if there is already a PersistentVolume within the cluster | | restart | ✓ | ✓ | ✓ | | | | | | | | | | -| __Volume__ | x | x | x | | | +| **Volume** | x | x | x | | | | driver | x | x | x | | | | driver_opts | x | x | x | | | | external | x | x | x | | | | labels | x | x | x | | | | | | | | | | -| __Network__ | x | x | x | | | +| **Network** | x | x | x | | | | driver | x | x | x | | | | driver_opts | x | x | x | | | | enable_ipv6 | x | x | x | | | diff --git a/docs/development.md b/docs/development.md index 073e0df4d7..0bf920e6da 100644 --- a/docs/development.md +++ b/docs/development.md @@ -14,6 +14,7 @@ redirect_from: Read about building kompose [here](https://github.com/kubernetes/kompose#building). ## Workflow + ### Fork the main repository 1. Go to https://github.com/kubernetes/kompose @@ -21,7 +22,7 @@ Read about building kompose [here](https://github.com/kubernetes/kompose#buildin ### Clone your fork -The commands below require that you have $GOPATH. We highly recommended you put Kompose' code into your $GOPATH. +The commands below require that you have `$GOPATH`. We highly recommended you put Kompose code into your `$GOPATH`. ```console git clone https://github.com/$YOUR_GITHUB_USERNAME/kompose.git $GOPATH/src/github.com/kubernetes/kompose @@ -65,12 +66,13 @@ git push -f origin myfeature ## Go Modules and dependency management Kompose uses [Go Modules](https://github.com/golang/go/wiki/Modules) to manage dependencies. -If you want to make changes to dependencies please make sure that `go.mod` and `go.sum` are updated properly. +If you want to introduce changes to dependencies, please ensure that `go.mod` and `go.sum` are updated properly. ##### Updating Kubernetes and OpenShift + Kubernetes version depends on what version is OpenShift using. OpenShift is using forked Kubernetes to carry some patches. -Currently it is not possible to use different Kubernetes version from version that OpenShift uses. +Currently, it is not possible to use a different Kubernetes version from the version that OpenShift uses. (for more see comments in `go.mod`) ### Adding CLI tests @@ -83,6 +85,6 @@ To generate CLI tests, please run `make gen-cmd`. For Kompose, we use numerous CI's: - - [TravisCI](https://travis-ci.org/kubernetes/kompose): Unit and CLI tests - - [SemaphoreCI](https://semaphoreci.com/cdrage/kompose-2): Integration / cluster tests - - [Fabric8CI](http://jenkins.cd.k8s.fabric8.io/): Secondary integration tests / future cluster tests +- [TravisCI](https://travis-ci.org/kubernetes/kompose): Unit and CLI tests +- [SemaphoreCI](https://semaphoreci.com/cdrage/kompose-2): Integration / cluster tests +- [Fabric8CI](http://jenkins.cd.k8s.fabric8.io/): Secondary integration tests / future cluster tests diff --git a/docs/getting-started.md b/docs/getting-started.md index f18eb94a68..5831ed555c 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -2,15 +2,15 @@ layout: default permalink: /getting-started/ title: Getting Started -redirect_from: +redirect_from: - /docs/getting-started.md/ - /docs/getting-started/ --- # Getting Started -* TOC -{:toc} +- TOC + {:toc} This is how you'll get started with Kompose! @@ -23,10 +23,11 @@ For beginners and the most compatibility, follow the _Minikube and Kompose_ guid In this guide, we'll deploy a sample `docker-compose.yaml` file to a Kubernetes cluster. Requirements: - - [minikube](https://github.com/kubernetes/minikube) - - [kompose](https://github.com/kubernetes/kompose) -__Start `minikube`:__ +- [minikube](https://github.com/kubernetes/minikube) +- [kompose](https://github.com/kubernetes/kompose) + +**Start `minikube`:** If you don't already have a Kubernetes cluster running, [minikube](https://github.com/kubernetes/minikube) is the best way to get started. @@ -43,30 +44,29 @@ Starting cluster components... Kubectl is now configured to use the cluster ``` -__Download an [example Docker Compose file](https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml), or use your own:__ +**Download an [example Docker Compose file](https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml), or use your own:** ```sh wget https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml ``` -__Convert your Docker Compose file to Kubernetes:__ +**Convert your Docker Compose file to Kubernetes:** Run `kompose convert` in the same directory as your `docker-compose.yaml` file. ```sh -$ kompose convert -INFO Kubernetes file "frontend-service.yaml" created -INFO Kubernetes file "redis-master-service.yaml" created -INFO Kubernetes file "redis-slave-service.yaml" created -INFO Kubernetes file "frontend-deployment.yaml" created -INFO Kubernetes file "redis-master-deployment.yaml" created -INFO Kubernetes file "redis-slave-deployment.yaml" created +$ kompose convert +INFO Kubernetes file "frontend-service.yaml" created +INFO Kubernetes file "redis-master-service.yaml" created +INFO Kubernetes file "redis-slave-service.yaml" created +INFO Kubernetes file "frontend-deployment.yaml" created +INFO Kubernetes file "redis-master-deployment.yaml" created +INFO Kubernetes file "redis-slave-deployment.yaml" created ``` -Then you can use `kubectl apply` to create these resources in kubernetes. - +Then you can use `kubectl apply` to create these resources in Kubernetes. -__Access the newly deployed service:__ +**Access the newly deployed service:** Now that your service has been deployed, let's access it. @@ -92,7 +92,6 @@ NodePort: 80 31144/TCP Endpoints: 172.17.0.4:80 Session Affinity: None No events. - ``` Note: If you're using a cloud provider, your IP will be listed next to `LoadBalancer Ingress`. @@ -100,7 +99,7 @@ Note: If you're using a cloud provider, your IP will be listed next to `LoadBala If you have yet to expose your service (for example, within GCE), use the command: ```sh -kubectl expose deployment frontend --type="LoadBalancer" +kubectl expose deployment frontend --type="LoadBalancer" ``` To check functionality, you may also `curl` the URL. @@ -114,15 +113,16 @@ $ curl http://123.45.67.89 In this guide, we'll deploy a sample `docker-compose.yaml` file to an OpenShift cluster. Requirements: - - [minishift](https://github.com/minishift/minishift) - - [kompose](https://github.com/kubernetes/kompose) - - An OpenShift route created -__Note:__ The service will NOT be accessible until you create an OpenShift route with `oc expose`. You must also have a virtualization environment setup. By default, `minishift` uses KVM. +- [minishift](https://github.com/minishift/minishift) +- [kompose](https://github.com/kubernetes/kompose) +- An OpenShift route created + +**Note:** The service will NOT be accessible until you create an OpenShift route with `oc expose`. You must also have a virtualization environment setup. By default, `minishift` uses KVM. -__Start `minishift`:__ +**Start `minishift`:** -[Minishift](https://github.com/minishift/minishift) is a tool that helps run OpenShift locally using a single-node cluster inside of a VM. Similar to [minikube](https://github.com/kubernetes/minikube). +[Minishift](https://github.com/minishift/minishift) is a tool that helps run OpenShift locally using a single-node cluster inside a VM. Similar to [minikube](https://github.com/kubernetes/minikube). ```sh $ minishift start @@ -134,32 +134,32 @@ Starting local OpenShift cluster using 'kvm' hypervisor... ... ``` -__Download an [example Docker Compose file](https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml), or use your own:__ +**Download an [example Docker Compose file](https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml), or use your own:** ```sh wget https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml ``` -__Convert your Docker Compose file to OpenShift:__ +**Convert your Docker Compose file to OpenShift:** Run `kompose convert --provider=openshift` in the same directory as your `docker-compose.yaml` file. ```sh $ kompose convert --provider=openshift -INFO OpenShift file "frontend-service.yaml" created -INFO OpenShift file "redis-master-service.yaml" created -INFO OpenShift file "redis-slave-service.yaml" created -INFO OpenShift file "frontend-deploymentconfig.yaml" created -INFO OpenShift file "frontend-imagestream.yaml" created -INFO OpenShift file "redis-master-deploymentconfig.yaml" created -INFO OpenShift file "redis-master-imagestream.yaml" created -INFO OpenShift file "redis-slave-deploymentconfig.yaml" created -INFO OpenShift file "redis-slave-imagestream.yaml" created +INFO OpenShift file "frontend-service.yaml" created +INFO OpenShift file "redis-master-service.yaml" created +INFO OpenShift file "redis-slave-service.yaml" created +INFO OpenShift file "frontend-deploymentconfig.yaml" created +INFO OpenShift file "frontend-imagestream.yaml" created +INFO OpenShift file "redis-master-deploymentconfig.yaml" created +INFO OpenShift file "redis-master-imagestream.yaml" created +INFO OpenShift file "redis-slave-deploymentconfig.yaml" created +INFO OpenShift file "redis-slave-imagestream.yaml" created ``` Then you can use `kubectl apply` to create these resources in OpenShift cluster. -__Access the newly deployed service:__ +**Access the newly deployed service:** After deployment, you must create an OpenShift route in order to access the service. @@ -191,15 +191,16 @@ Opening the OpenShift Web console in the default browser... In this guide, we'll deploy a sample `docker-compose.yaml` file using both RHEL (Red Hat Enterprise Linux) and OpenShift. Requirements: - - Red Hat Enterprise Linux 7.4 - - [Red Hat Development Suite](https://developers.redhat.com/products/devsuite/overview/) - - Which includes: - - [minishift](https://github.com/minishift/minishift) - - [kompose](https://github.com/kubernetes/kompose) -__Note:__ A KVM hypervisor must be setup in order to correctly use `minishift` on RHEL. You can set it up via the [CDK Documentation](https://access.redhat.com/documentation/en-us/red_hat_container_development_kit/3.1/html-single/getting_started_guide/index#setup-virtualization) under "Set up your virtualization environment". +- Red Hat Enterprise Linux 7.4 +- [Red Hat Development Suite](https://developers.redhat.com/products/devsuite/overview/) + - Which includes: + - [minishift](https://github.com/minishift/minishift) + - [kompose](https://github.com/kubernetes/kompose) + +**Note:** A KVM hypervisor must be setup in order to correctly use `minishift` on RHEL. You can set it up via the [CDK Documentation](https://access.redhat.com/documentation/en-us/red_hat_container_development_kit/3.1/html-single/getting_started_guide/index#setup-virtualization) under "Set up your virtualization environment". -__Install Red Hat Development Suite:__ +**Install Red Hat Development Suite:** Before we are able to use both `minishift` and `kompose`, DevSuite must be installed. A more concise [installation document is available](https://developers.redhat.com/products/cdk/hello-world#fndtn-rhel). @@ -230,7 +231,7 @@ Install Red Hat Development Suite and Kompose. $ yum install rh-devsuite kompose -y ``` -__Start `minishift`:__ +**Start `minishift`:** Before we begin, we must do a few preliminary steps setting up `minishift`. @@ -253,32 +254,32 @@ Starting local OpenShift cluster using 'kvm' hypervisor... ... ``` -__Download an [example Docker Compose file](https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml), or use your own:__ +**Download an [example Docker Compose file](https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml), or use your own:** ```sh wget https://raw.githubusercontent.com/kubernetes/kompose/master/examples/docker-compose.yaml ``` -__Convert your Docker Compose file to OpenShift:__ +**Convert your Docker Compose file to OpenShift:** Run `kompose convert --provider=openshift` in the same directory as your `docker-compose.yaml` file. ```sh $ kompose convert --provider=openshift -INFO OpenShift file "frontend-service.yaml" created -INFO OpenShift file "redis-master-service.yaml" created -INFO OpenShift file "redis-slave-service.yaml" created -INFO OpenShift file "frontend-deploymentconfig.yaml" created -INFO OpenShift file "frontend-imagestream.yaml" created -INFO OpenShift file "redis-master-deploymentconfig.yaml" created -INFO OpenShift file "redis-master-imagestream.yaml" created -INFO OpenShift file "redis-slave-deploymentconfig.yaml" created -INFO OpenShift file "redis-slave-imagestream.yaml" created +INFO OpenShift file "frontend-service.yaml" created +INFO OpenShift file "redis-master-service.yaml" created +INFO OpenShift file "redis-slave-service.yaml" created +INFO OpenShift file "frontend-deploymentconfig.yaml" created +INFO OpenShift file "frontend-imagestream.yaml" created +INFO OpenShift file "redis-master-deploymentconfig.yaml" created +INFO OpenShift file "redis-master-imagestream.yaml" created +INFO OpenShift file "redis-slave-deploymentconfig.yaml" created +INFO OpenShift file "redis-slave-imagestream.yaml" created ``` Then you can use `kubectl apply` to create these resources in OpenShift. -__Access the newly deployed service:__ +**Access the newly deployed service:** After deployment, you must create an OpenShift route in order to access the service. diff --git a/docs/index.md b/docs/index.md index 7df7cf6f95..fb3d2673da 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,6 +4,7 @@ layout: index --- + ```sh $ kompose convert -f docker-compose.yaml diff --git a/docs/installation.md b/docs/installation.md index c7284ea17a..d1d2d32839 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -2,15 +2,15 @@ layout: default permalink: /installation/ title: Installation -redirect_from: +redirect_from: - /docs/installation.md/ - /docs/installation/ --- # Installation -* TOC -{:toc} +- TOC + {:toc} We have multiple ways to install Kompose. Our preferred method is downloading the binary from the latest GitHub release. @@ -18,7 +18,7 @@ We have multiple ways to install Kompose. Our preferred method is downloading th Kompose is released via GitHub on a three-week cycle, you can see all current releases on the [GitHub release page](https://github.com/kubernetes/kompose/releases). -__Linux and macOS:__ +**Linux and macOS:** ```sh # Linux @@ -31,7 +31,7 @@ chmod +x kompose sudo mv ./kompose /usr/local/bin/kompose ``` -__Windows:__ +**Windows:** Download from [GitHub](https://github.com/kubernetes/kompose/releases/download/v1.28.0/kompose-windows-amd64.exe) and add the binary to your PATH. @@ -46,7 +46,7 @@ go install github.com/kubernetes/kompose@latest ## CentOS Kompose is in [EPEL](https://fedoraproject.org/wiki/EPEL) CentOS repository. -If you don't have [EPEL](https://fedoraproject.org/wiki/EPEL) repository already installed and enabled you can do it by running `sudo yum install epel-release` +If you don't have [EPEL](https://fedoraproject.org/wiki/EPEL) repository already installed and enabled you can do it by running `sudo yum install epel-release` If you have [EPEL](https://fedoraproject.org/wiki/EPEL) enabled in your system, you can install Kompose like any other package. @@ -55,6 +55,7 @@ sudo yum -y install kompose ``` ## Fedora + Kompose is in Fedora 24, 25 and 26 repositories. You can install it just like any other package. ```bash @@ -63,7 +64,7 @@ sudo dnf -y install kompose ## Ubuntu/Debian -A deb package is released for compose. Download latest package in the assets in [github releases](https://github.com/kubernetes/kompose/releases). +A deb package is released for compose. Download the latest package in the assets in [GitHub releases](https://github.com/kubernetes/kompose/releases). ```bash wget https://github.com/kubernetes/kompose/releases/download/v1.28.0/kompose_1.28.0_amd64.deb # Replace 1.28.0 with latest tag @@ -71,7 +72,8 @@ sudo apt install ./kompose_1.28.0_amd64.deb ``` ## macOS -On macOS you can install latest release via [Homebrew](https://brew.sh) or [MacPorts](https://www.macports.org/). + +On macOS you can install the latest release via [Homebrew](https://brew.sh) or [MacPorts](https://www.macports.org/). ```bash # Homebrew @@ -82,6 +84,7 @@ port install kompose ``` ## Windows + Kompose can be installed via [Chocolatey](https://chocolatey.org/packages/kubernetes-kompose) ```console @@ -89,6 +92,7 @@ choco install kubernetes-kompose ``` ## openSUSE/SLE + Kompose is available in the official repositories of openSUSE Tumbleweed and in openSUSE Leap starting with 15.2. On SUSE Linux Enterprise Server 15 SP2 - and following - you can install kompose from [PackageHub](https://packagehub.suse.com/). Please refer to the SUSE documentation on how to activate [PackageHub](https://packagehub.suse.com/) on your SUSE Linux Enterprise distribution. ```bash @@ -109,10 +113,9 @@ To run `kompose` without installing it, use [nix-shell](https://nixos.org/manual nix-shell -p kompose --run "kompose convert" ``` - ## Docker -You can build an image from the offical repo for [Docker](https://docs.docker.com/engine/reference/commandline/build/) or [Podman](https://docs.podman.io/en/latest/markdown/podman-build.1.html): +You can build an image from the official repo for [Docker](https://docs.docker.com/engine/reference/commandline/build/) or [Podman](https://docs.podman.io/en/latest/markdown/podman-build.1.html): ```bash docker build -t kompose https://github.com/kubernetes/kompose.git diff --git a/docs/integrations.md b/docs/integrations.md index d1aeb0b05a..cf3b647f51 100644 --- a/docs/integrations.md +++ b/docs/integrations.md @@ -2,56 +2,56 @@ layout: default permalink: /integrations/ title: Integrations -redirect_from: +redirect_from: - /docs/integrations.md/ - /docs/integrations/ --- # Integrations -* TOC -{:toc} +- TOC + {:toc} There are some projects out there known to use Kompose integrated in some form or another ### Kompose UI by Jad Chamoun (ICANN) and Joe Haddad (Anghami) -__Description:__ "A web interface to convert Docker Compose files to Kubernetes YAML" +**Description:** "A web interface to convert Docker Compose files to Kubernetes YAML" -__Link:__ [https://github.com/JadCham/komposeui](https://github.com/JadCham/komposeui) +**Link:** [https://github.com/JadCham/komposeui](https://github.com/JadCham/komposeui) ### Kompose Docker Container by Cloudfind -__Description:__ "A Docker container for the Kompose translator for docker-compose" +**Description:** "A Docker container for the Kompose translator for docker-compose" -__Link:__ [https://github.com/cloudfind/kompose-docker](https://github.com/cloudfind/kompose-docker) +**Link:** [https://github.com/cloudfind/kompose-docker](https://github.com/cloudfind/kompose-docker) ### KPM by CoreOS -__Description:__ "KPM is a tool to deploy and manage application stacks on Kubernetes" +**Description:** "KPM is a tool to deploy and manage application stacks on Kubernetes" -__Link:__ [https://github.com/coreos/kpm](https://github.com/coreos/kpm) +**Link:** [https://github.com/coreos/kpm](https://github.com/coreos/kpm) ### Docker Image for Adobe Enterprise Manager by Adfinis SyGroup AG -__Description:__ "Docker Image for Adobe Enterprise Manager" +**Description:** "Docker Image for Adobe Enterprise Manager" -__Link:__ [https://github.com/adfinis-sygroup/aem-docker/tree/master](https://github.com/adfinis-sygroup/aem-docker/tree/master) +**Link:** [https://github.com/adfinis-sygroup/aem-docker/tree/master](https://github.com/adfinis-sygroup/aem-docker/tree/master) ### Kompose Ansible Playbook by Chris Houseknecht (Red Hat) -__Description:__ "Download and unarchive the latest kompose release asset for your OS" +**Description:** "Download and unarchive the latest kompose release asset for your OS" -__Link:__ [https://github.com/chouseknecht/kompose-install-role](https://github.com/chouseknecht/kompose-install-role) +**Link:** [https://github.com/chouseknecht/kompose-install-role](https://github.com/chouseknecht/kompose-install-role) ### Fabric8 Maven Plugin by Red Hat -__Description:__ "Maven is one of the widely used build tools for Java applications. The Fabric8 Maven Plugin is a maven extension that simplifies the deployment of Java applications to Kubernetes or OpenShift cluster. -The main task of this plugin is to build Docker images, generate Kubernetes or OpenShift resource descriptors and run/deploy the application on Kubernetes or OpenShift cluster. -Plugin has wide range of configuration options. Docker Compose is one of the option to bring up deployments on Kubernetes or OpenShift cluster. +**Description:** "Maven is one of the widely used build tools for Java applications. The Fabric8 Maven Plugin is a maven extension that simplifies the deployment of Java applications to Kubernetes or OpenShift cluster. +The main task of this plugin is to build Docker images, generate Kubernetes or OpenShift resource descriptors and run/deploy the application on Kubernetes or OpenShift cluster. +Plugin has wide range of configuration options. Docker Compose is one of the option to bring up deployments on Kubernetes or OpenShift cluster. Technically, Fabric8 Maven Plugin processes the external docker-compose.yml file and generates Kubernetes or OpenShift resources via Kompose." -__Links:__ +**Links:** -* [Quickstart](/docs/maven-example.md) -* [Documentation](https://maven.fabric8.io/#docker-compose) +- [Quickstart](/docs/maven-example.md) +- [Documentation](https://maven.fabric8.io/#docker-compose) diff --git a/docs/maven-example.md b/docs/maven-example.md index a2a8e62077..f7cfb344c2 100644 --- a/docs/maven-example.md +++ b/docs/maven-example.md @@ -2,45 +2,52 @@ layout: default permalink: /maven-example/ title: Maven Example -redirect_from: +redirect_from: - /docs/maven-example.md/ - /docs/maven-example/ --- # Fabric8 Maven Plugin + Kompose: + Let's deploy a Springboot Java application with Docker Compose file using Fabric8 Maven Plugin to Kubernetes or OpenShift. ##### Requirements -* Linux or MacOS or Windows -* JDK 1.7+ - [JDK Quick Installation Guide](http://openjdk.java.net/install/) -* Maven 3.x+ - [Maven Installation Guide](http://www.baeldung.com/install-maven-on-windows-linux-mac) -* Kompose - [Kompose Installation Guide](/docs/installation.md) -__1. Clone the example project from GitHub__ +- Linux or MacOS or Windows +- JDK 1.7+ - [JDK Quick Installation Guide](http://openjdk.java.net/install/) +- Maven 3.x+ - [Maven Installation Guide](http://www.baeldung.com/install-maven-on-windows-linux-mac) +- Kompose - [Kompose Installation Guide](/docs/installation.md) + +**1. Clone the example project from GitHub** + ```bash $ git clone https://github.com/piyush1594/kompose-maven-example.git ``` Change current directory to `kompose-maven-example` directory. + ```bash $ cd kompose-maven-example ``` -__2. Add Fabric8 Maven Plugin to your project__ +**2. Add Fabric8 Maven Plugin to your project** + ```bash $ mvn io.fabric8:fabric8-maven-plugin:3.5.28:setup ``` Add the Fabric8 Maven Plugin configuration to `pom.xml` of project. `pom.xml` is manifest or deployment descriptor file of a maven project. -__3. Install Kompose through Maven__ +**3. Install Kompose through Maven** + ```bash $ mvn fabric8:install ``` This command installs the `kompose` on the host. -__4. Configure Fabric8 Maven Plugin to use a Docker Compose file__ +**4. Configure Fabric8 Maven Plugin to use a Docker Compose file** + ```bash io.fabric8 @@ -61,19 +68,22 @@ __4. Configure Fabric8 Maven Plugin to use a Docker Compose file__ Add the `` and `` sections to `pom.xml` as shown in above `pom.xml` snippet. Update the `` to provide the relative path of Docker Compose file from `pom.xml` -__5. Deploy application on Kubernetes or OpenShift__ +**5. Deploy application on Kubernetes or OpenShift** + +Make sure that Kubernetes/OpenShift cluster or Minikube/minishift is running. In case, if anything of this is not running, you can run minishift to test this application by using following command. - Make sure that Kubernetes/OpenShift cluster or Minikube/minishift is running. In case, if anything of this is not running, you can run minishift to test this application by using following command. ```bash $ minishift start ``` - Below command deploys this application on Kubernetes or OpenShift. +Below command deploys this application on Kubernetes or OpenShift. + ```bash -$ mvn fabric8:deploy +$ mvn fabric8:deploy ``` Now that your service has been deployed, let's access it by querying `pod`, `service` from Kubernetes or OpenShift. + ```bash $ oc get pods NAME READY STATUS RESTARTS AGE @@ -88,6 +98,7 @@ springboot-docker-compose 172.30.205.137 8080/TCP 6m ``` Let's access the Springboot service. + ```bash $ minishift openshift service --in-browser springboot-docker-compose Created the new window in existing browser session. diff --git a/docs/user-guide.md b/docs/user-guide.md index c253182947..5feeaf5f9e 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -2,20 +2,19 @@ layout: default permalink: /user-guide/ title: User Guide -redirect_from: +redirect_from: - /docs/user-guide.md/ - /docs/user-guide/ --- # User Guide -* TOC -{:toc} +- TOC + {:toc} Kompose has support for two providers: OpenShift and Kubernetes. You can choose a targeted provider using global option `--provider`. If no provider is specified, Kubernetes is set by default. - ## Kompose Convert Kompose supports conversion of V1, V2, and V3 Docker Compose files into Kubernetes and OpenShift objects. @@ -46,60 +45,60 @@ You can also provide multiple docker-compose files at the same time: ```sh $ kompose -f docker-compose.yml -f docker-guestbook.yml convert -INFO Kubernetes file "frontend-service.yaml" created -INFO Kubernetes file "mlbparks-service.yaml" created -INFO Kubernetes file "mongodb-service.yaml" created -INFO Kubernetes file "redis-master-service.yaml" created -INFO Kubernetes file "redis-slave-service.yaml" created -INFO Kubernetes file "frontend-deployment.yaml" created -INFO Kubernetes file "mlbparks-deployment.yaml" created -INFO Kubernetes file "mongodb-deployment.yaml" created -INFO Kubernetes file "mongodb-claim0-persistentvolumeclaim.yaml" created -INFO Kubernetes file "redis-master-deployment.yaml" created -INFO Kubernetes file "redis-slave-deployment.yaml" created +INFO Kubernetes file "frontend-service.yaml" created +INFO Kubernetes file "mlbparks-service.yaml" created +INFO Kubernetes file "mongodb-service.yaml" created +INFO Kubernetes file "redis-master-service.yaml" created +INFO Kubernetes file "redis-slave-service.yaml" created +INFO Kubernetes file "frontend-deployment.yaml" created +INFO Kubernetes file "mlbparks-deployment.yaml" created +INFO Kubernetes file "mongodb-deployment.yaml" created +INFO Kubernetes file "mongodb-claim0-persistentvolumeclaim.yaml" created +INFO Kubernetes file "redis-master-deployment.yaml" created +INFO Kubernetes file "redis-slave-deployment.yaml" created $ ls -mlbparks-deployment.yaml mongodb-service.yaml redis-slave-service.jsonmlbparks-service.yaml +mlbparks-deployment.yaml mongodb-service.yaml redis-slave-service.jsonmlbparks-service.yaml frontend-deployment.yaml mongodb-claim0-persistentvolumeclaim.yaml redis-master-service.yaml frontend-service.yaml mongodb-deployment.yaml redis-slave-deployment.yaml redis-master-deployment.yaml -``` +``` When multiple docker-compose files are provided the configuration is merged. Any configuration that is common will be over ridden by subsequent file. - + ### OpenShift ```sh $ kompose --provider openshift --file docker-voting.yml convert WARN [worker] Service cannot be created because of missing port. -INFO OpenShift file "vote-service.yaml" created -INFO OpenShift file "db-service.yaml" created -INFO OpenShift file "redis-service.yaml" created -INFO OpenShift file "result-service.yaml" created -INFO OpenShift file "vote-deploymentconfig.yaml" created -INFO OpenShift file "vote-imagestream.yaml" created -INFO OpenShift file "worker-deploymentconfig.yaml" created -INFO OpenShift file "worker-imagestream.yaml" created -INFO OpenShift file "db-deploymentconfig.yaml" created -INFO OpenShift file "db-imagestream.yaml" created -INFO OpenShift file "redis-deploymentconfig.yaml" created -INFO OpenShift file "redis-imagestream.yaml" created -INFO OpenShift file "result-deploymentconfig.yaml" created -INFO OpenShift file "result-imagestream.yaml" created +INFO OpenShift file "vote-service.yaml" created +INFO OpenShift file "db-service.yaml" created +INFO OpenShift file "redis-service.yaml" created +INFO OpenShift file "result-service.yaml" created +INFO OpenShift file "vote-deploymentconfig.yaml" created +INFO OpenShift file "vote-imagestream.yaml" created +INFO OpenShift file "worker-deploymentconfig.yaml" created +INFO OpenShift file "worker-imagestream.yaml" created +INFO OpenShift file "db-deploymentconfig.yaml" created +INFO OpenShift file "db-imagestream.yaml" created +INFO OpenShift file "redis-deploymentconfig.yaml" created +INFO OpenShift file "redis-imagestream.yaml" created +INFO OpenShift file "result-deploymentconfig.yaml" created +INFO OpenShift file "result-imagestream.yaml" created ``` -It also supports creating buildconfig for build directive in a service. By default, it uses the remote repo for the current git branch as the source repo, and the current branch as the source branch for the build. You can specify a different source repo and branch using ``--build-repo`` and ``--build-branch`` options respectively. +It also supports creating buildconfig for build directive in a service. By default, it uses the remote repo for the current git branch as the source repo, and the current branch as the source branch for the build. You can specify a different source repo and branch using `--build-repo` and `--build-branch` options respectively. ```sh $ kompose --provider openshift --file buildconfig/docker-compose.yml convert -WARN [foo] Service cannot be created because of missing port. -INFO OpenShift Buildconfig using git@github.com:rtnpro/kompose.git::master as source. -INFO OpenShift file "foo-deploymentconfig.yaml" created -INFO OpenShift file "foo-imagestream.yaml" created -INFO OpenShift file "foo-buildconfig.yaml" created +WARN [foo] Service cannot be created because of missing port. +INFO OpenShift Buildconfig using git@github.com:rtnpro/kompose.git::master as source. +INFO OpenShift file "foo-deploymentconfig.yaml" created +INFO OpenShift file "foo-imagestream.yaml" created +INFO OpenShift file "foo-buildconfig.yaml" created ``` -**Note**: If you are manually pushing the Openshift artifacts using ``oc create -f``, you need to ensure that you push the imagestream artifact before the buildconfig artifact, to workaround this Openshift issue: https://github.com/openshift/origin/issues/4518 . +**Note**: If you are manually pushing the Openshift artifacts using `oc create -f`, you need to ensure that you push the imagestream artifact before the buildconfig artifact, to work around this Openshift issue: https://github.com/openshift/origin/issues/4518 . ## Alternative Conversions @@ -112,6 +111,7 @@ INFO Kubernetes file "web-svc.json" created INFO Kubernetes file "redis-deployment.json" created INFO Kubernetes file "web-deployment.json" created ``` + The `*-deployment.json` files contain the Deployment objects. ```sh @@ -136,19 +136,18 @@ The `*-daemonset.yaml` files contain the Daemon Set objects ```sh $ kompose convert --controller statefulset -INFO Kubernetes file "db-service.yaml" created -INFO Kubernetes file "wordpress-service.yaml" created -INFO Kubernetes file "db-statefulset.yaml" created -INFO Kubernetes file "wordpress-statefulset.yaml" created +INFO Kubernetes file "db-service.yaml" created +INFO Kubernetes file "wordpress-service.yaml" created +INFO Kubernetes file "db-statefulset.yaml" created +INFO Kubernetes file "wordpress-statefulset.yaml" created ``` The `*statefulset-.yaml` files contain the Statefulset objects. - If you want to generate a Chart to be used with [Helm](https://github.com/kubernetes/helm) simply do: ```sh -$ kompose convert -c +$ kompose convert -c INFO Kubernetes file "web-svc.yaml" created INFO Kubernetes file "redis-svc.yaml" created INFO Kubernetes file "web-deployment.yaml" created @@ -175,44 +174,42 @@ explicitly define the generated resources' behavior upon conversion, like Servic The currently supported options are: -| Key | Value | -|----------------------|-------------------------------------| -| kompose.service.type | nodeport / clusterip / loadbalancer / headless | -| kompose.service.group | name to group the containers contained in a single pod | -| kompose.service.expose | true / hostnames (separated by comma) | -| kompose.service.nodeport.port | port value (string) | -| kompose.service.expose.tls-secret | secret name | -| kompose.service.expose.ingress-class-name | ingress class name | -| kompose.volume.size | kubernetes supported volume size | -| kompose.volume.storage-class-name | kubernetes supported volume storageClassName | -| kompose.volume.type | use k8s volume type, eg "configMap", "persistentVolumeClaim", "emptyDir", "hostPath" | -| kompose.controller.type | deployment / daemonset / replicationcontroller | -| kompose.image-pull-policy | kubernetes pods imagePullPolicy | -| kompose.image-pull-secret | kubernetes secret name for imagePullSecrets | -| kompose.service.healthcheck.readiness.disable | kubernetes readiness disable | -| kompose.service.healthcheck.readiness.test | kubernetes readiness exec command | -| kompose.service.healthcheck.readiness.http_get_path | kubernetes readiness httpGet path | -| kompose.service.healthcheck.readiness.http_get_port | kubernetes readiness httpGet port | -| kompose.service.healthcheck.readiness.tcp_port | kubernetes readiness tcpSocket port | -| kompose.service.healthcheck.readiness.interval | kubernetes readiness interval value | -| kompose.service.healthcheck.readiness.timeout | kubernetes readiness timeout value | -| kompose.service.healthcheck.readiness.retries | kubernetes readiness retries value | -| kompose.service.healthcheck.readiness.start_period | kubernetes readiness start_period | -| kompose.service.healthcheck.liveness.http_get_path | kubernetes liveness httpGet path | -| kompose.service.healthcheck.liveness.http_get_port | kubernetes liveness httpGet port | -| kompose.service.healthcheck.liveness.tcp_port | kubernetes liveness tcpSocket port | +| Key | Value | +| --------------------------------------------------- | ------------------------------------------------------------------------------------ | +| kompose.service.type | nodeport / clusterip / loadbalancer / headless | +| kompose.service.group | name to group the containers contained in a single pod | +| kompose.service.expose | true / hostnames (separated by comma) | +| kompose.service.nodeport.port | port value (string) | +| kompose.service.expose.tls-secret | secret name | +| kompose.service.expose.ingress-class-name | ingress class name | +| kompose.volume.size | kubernetes supported volume size | +| kompose.volume.storage-class-name | kubernetes supported volume storageClassName | +| kompose.volume.type | use k8s volume type, eg "configMap", "persistentVolumeClaim", "emptyDir", "hostPath" | +| kompose.controller.type | deployment / daemonset / replicationcontroller | +| kompose.image-pull-policy | kubernetes pods imagePullPolicy | +| kompose.image-pull-secret | kubernetes secret name for imagePullSecrets | +| kompose.service.healthcheck.readiness.disable | kubernetes readiness disable | +| kompose.service.healthcheck.readiness.test | kubernetes readiness exec command | +| kompose.service.healthcheck.readiness.http_get_path | kubernetes readiness httpGet path | +| kompose.service.healthcheck.readiness.http_get_port | kubernetes readiness httpGet port | +| kompose.service.healthcheck.readiness.tcp_port | kubernetes readiness tcpSocket port | +| kompose.service.healthcheck.readiness.interval | kubernetes readiness interval value | +| kompose.service.healthcheck.readiness.timeout | kubernetes readiness timeout value | +| kompose.service.healthcheck.readiness.retries | kubernetes readiness retries value | +| kompose.service.healthcheck.readiness.start_period | kubernetes readiness start_period | +| kompose.service.healthcheck.liveness.http_get_path | kubernetes liveness httpGet path | +| kompose.service.healthcheck.liveness.http_get_port | kubernetes liveness httpGet port | +| kompose.service.healthcheck.liveness.tcp_port | kubernetes liveness tcpSocket port | **Note**: `kompose.service.type` label should be defined with `ports` only (except for headless service), otherwise `kompose` will fail. - - - `kompose.service.type` defines the type of service to be created. For example: ```yaml version: "2" -services: +services: nginx: image: nginx dockerfile: foobar @@ -220,11 +217,11 @@ services: cap_add: - ALL container_name: foobar - labels: + labels: kompose.service.type: nodeport ``` - - `kompose.service.group` defines the group of containers included in a single pod. +- `kompose.service.group` defines the group of containers included in a single pod. For example: @@ -236,19 +233,19 @@ services: image: nginx depends_on: - logs - labels: + labels: - kompose.service.group=sidecar logs: image: busybox command: ["tail -f /var/log/nginx/access.log"] - labels: + labels: - kompose.service.group=sidecar ``` - `kompose.service.expose` defines if the service needs to be made accessible from outside the cluster or not. If the value is set to "true", the provider sets the endpoint automatically, and for any other value, the value is set as the hostname. If multiple ports are defined in a service, the first one is chosen to be the exposed. - - For the Kubernetes provider, an ingress resource is created and it is assumed that an ingress controller has already been configured. If the value is set to a comma sepatated list, multiple hostnames are supported.Hostname with path is also supported. - - For the OpenShift provider, a route is created. + - For the Kubernetes provider, an ingress resource is created,and it is assumed that an ingress controller has already been configured. If the value is set to a comma separated list, multiple hostnames are supported.Hostname with path is also supported. + - For the OpenShift provider, a route is created. - `kompose.service.nodeport.port` defines the port value when service type is `nodeport`, this label should only be set when the service only contains 1 port. Usually kubernetes define a port range for node port values, kompose will not validate this. - `kompose.service.expose.tls-secret` provides the name of the TLS secret to use with the Kubernetes ingress controller. This requires kompose.service.expose to be set. - `kompose.service.expose.ingress-class-name` provides the name of ingress class to use with the Kubernetes ingress controller. This requires kompose.service. @@ -288,8 +285,8 @@ services: ``` - `kompose.image-pull-secret` defines a kubernetes secret name for imagePullSecrets podspec field. -This secret will be used for pulling private images. -For example: + This secret will be used for pulling private images. + For example: ```yaml version: '2' @@ -300,8 +297,8 @@ services: kompose.image-pull-secret: "example-kubernetes-secret" ``` -- `kompose.volume.size` defines the requests storage's size in the PersistentVolumeClaim, or you can use command line parameter `--pvc-request-size`. -The priority follow label (kompose.volume.size) > command parameter(--pvc-request-size) > defaultSize (100Mi) +- `kompose.volume.size` defines the requests storage's size in the PersistentVolumeClaim, or you can use command line parameter `--pvc-request-size`. + The priority follow label (kompose.volume.size) > command parameter(--pvc-request-size) > defaultSize (100Mi) For example: @@ -378,7 +375,6 @@ services: kompose.image-pull-policy: "Never" ``` - For example: ```yaml @@ -412,6 +408,7 @@ services: kompose.service.healthcheck.readiness.retries: 3 kompose.service.healthcheck.readiness.start_period: 30s ``` + - `kompose.service.healthcheck.readiness` defines Kubernetes [readiness](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes) ## Restart @@ -419,7 +416,7 @@ services: If you want to create normal pods without controller you can use `restart` construct of docker-compose to define that. Follow table below to see what happens on the `restart` value. | `docker-compose` `restart` | object created | Pod `restartPolicy` | -|----------------------------|-------------------|---------------------| +| -------------------------- | ----------------- | ------------------- | | `""` | controller object | `Always` | | `always` | controller object | `Always` | | `unless-stopped` | controller object | `Always` | @@ -452,9 +449,9 @@ Please note that changing service name might break some `docker-compose` files. If the Docker Compose file has `build` or `build:context, build:dockerfile` keys, build will run when `--build` specified. -And Image will push to *docker.io* (default) when `--push-image=true` specified. +And Image will push to _docker.io_ (default) when `--push-image=true` specified. -It is possible to push to custom registry by specify `--push-image-registry`, which will override the registry from image name. +It is possible to push to custom registry by specify `--push-image-registry`, which will override the registry from image name. ### Authentication on registry @@ -463,12 +460,13 @@ Kompose uses the docker authentication from file `$DOCKER_CONFIG/config.json`, ` **This only works fine on Linux but macOS would fail when using `"credsStore": "osxkeychain"`.** However, there is an approach to push successfully on macOS, by not using `osxkeychain` for `credsStore`. To disable `osxkeychain`: -* remove `credsStore` from `config.json` file, and `docker login` again. -* for some docker desktop versions, there is a setting `Securely store Docker logins in macOS keychain`, which should be unchecked. Then restart docker desktop if needed, and `docker login` again. + +- remove `credsStore` from `config.json` file, and `docker login` again. +- for some docker desktop versions, there is a setting `Securely store Docker logins in macOS keychain`, which should be unchecked. Then restart docker desktop if needed, and `docker login` again. Now `config.json` should contain base64 encoded passwords, then push image should succeed. Working, but not safe though! Use it at your risk. -For Windows, there is also `credsStore` which is `wincred`. Technically it will fail on authentication as macOS does, but you can try the approach above like macOS too. +For Windows, there is also `credsStore` which is `wincred`. Technically it will fail on authentication as macOS does, but you can try the approach above like macOS too. ## Docker Compose Versions diff --git a/go.mod b/go.mod index a4ec3105b3..0b0cbbe604 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,6 @@ require ( github.com/spf13/cobra v1.6.1 github.com/spf13/viper v1.14.0 golang.org/x/tools v0.5.0 - gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.22.5 k8s.io/apimachinery v0.22.5 @@ -72,6 +71,7 @@ require ( golang.org/x/text v0.6.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect k8s.io/klog/v2 v2.80.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect ) diff --git a/index.md b/index.md index 4ca4c4bc13..6c645dc302 100644 --- a/index.md +++ b/index.md @@ -3,6 +3,7 @@ layout: default --- # Kubernetes + Compose = Kompose + ## A conversion tool to go from Docker Compose to Kubernetes ### What's Kompose? @@ -11,8 +12,8 @@ Kompose is a conversion tool for Docker Compose to container orchestrators such Why do developers love it? - - Simplify your development process with Docker Compose and then deploy your containers to a production cluster - - Convert your `docker-compose.yaml` with one simple command `kompose convert` +- Simplify your development process with Docker Compose and then deploy your containers to a production cluster +- Convert your `docker-compose.yaml` with one simple command `kompose convert` ### It's as simple as 1-2-3 diff --git a/script/test/README.md b/script/test/README.md index c69cecba4e..305807b4ff 100644 --- a/script/test/README.md +++ b/script/test/README.md @@ -4,9 +4,6 @@ Install `jq - commandline JSON processor` with minimum version of 1.5 - ### Running tests Test running ./cmd/tests.sh - - diff --git a/script/test/fixtures/nginx-node-redis/node/index.js b/script/test/fixtures/nginx-node-redis/node/index.js index d01e517db8..9a924abeee 100644 --- a/script/test/fixtures/nginx-node-redis/node/index.js +++ b/script/test/fixtures/nginx-node-redis/node/index.js @@ -1,10 +1,10 @@ -var express = require('express'), - http = require('http'), - redis = require('redis'); +var express = require("express"), + http = require("http"), + redis = require("redis"); var app = express(); -console.log(process.env.REDIS_PORT_6379_TCP_ADDR + ':' + process.env.REDIS_PORT_6379_TCP_PORT); +console.log(process.env.REDIS_PORT_6379_TCP_ADDR + ":" + process.env.REDIS_PORT_6379_TCP_PORT); // APPROACH 1: Using environment variables created by Docker // var client = redis.createClient( @@ -13,16 +13,15 @@ console.log(process.env.REDIS_PORT_6379_TCP_ADDR + ':' + process.env.REDIS_PORT_ // ); // APPROACH 2: Using host entries created by Docker in /etc/hosts (RECOMMENDED) -var client = redis.createClient('6379', 'redis'); +var client = redis.createClient("6379", "redis"); - -app.get('/', function(req, res, next) { - client.incr('counter', function(err, counter) { - if(err) return next(err); - res.send('This page has been viewed ' + counter + ' times!'); +app.get("/", function(req, res, next) { + client.incr("counter", function(err, counter) { + if (err) return next(err); + res.send("This page has been viewed " + counter + " times!"); }); }); http.createServer(app).listen(process.env.PORT || 8080, function() { - console.log('Listening on port ' + (process.env.PORT || 8080)); -}); \ No newline at end of file + console.log("Listening on port " + (process.env.PORT || 8080)); +}); diff --git a/script/test/fixtures/nginx-node-redis/node/test/dummyTest.js b/script/test/fixtures/nginx-node-redis/node/test/dummyTest.js index 6218a87f4b..44e60013d2 100644 --- a/script/test/fixtures/nginx-node-redis/node/test/dummyTest.js +++ b/script/test/fixtures/nginx-node-redis/node/test/dummyTest.js @@ -1,7 +1,7 @@ -var assert = require("assert"); - -describe('Dummy Test', function(){ - it('should pass', function(){ - assert.ok(true, "It is true!"); - }); -}); \ No newline at end of file +var assert = require("assert"); + +describe("Dummy Test", function() { + it("should pass", function() { + assert.ok(true, "It is true!"); + }); +}); diff --git a/script/test/fixtures/unused/v3/output-os-full-example.json b/script/test/fixtures/unused/v3/output-os-full-example.json index 8c2c92944b..1fee18eedd 100644 --- a/script/test/fixtures/unused/v3/output-os-full-example.json +++ b/script/test/fixtures/unused/v3/output-os-full-example.json @@ -374,7 +374,7 @@ } ], "restartPolicy": "OnFailure", - "terminationGracePeriodSeconds": 20, + "terminationGracePeriodSeconds": 20, "hostname": "foo", "subdomain": "foo.com" }, From 47b465d88ea512c034133408119b0a3f4a9cd408 Mon Sep 17 00:00:00 2001 From: racfop Date: Mon, 23 Jan 2023 08:22:44 -0800 Subject: [PATCH 2/5] undo commit to assets/**/* --- docs/assets/js/bootstrap.min.js | 1956 +------- docs/assets/js/contact.js | 49 +- docs/assets/js/custom.js | 296 +- docs/assets/js/jquery-2.1.1.js | 3931 +-------------- docs/assets/js/jquery.accordion.js | 476 +- docs/assets/js/jquery.validate.min.js | 825 +-- docs/assets/js/live.js | 469 +- docs/assets/js/menu-2.js | 79 +- docs/assets/js/menu.js | 83 +- docs/assets/js/plugins.js | 6633 ++++--------------------- docs/assets/js/popper.min.js | 845 +--- docs/assets/js/validator.js | 735 ++- 12 files changed, 2067 insertions(+), 14310 deletions(-) diff --git a/docs/assets/js/bootstrap.min.js b/docs/assets/js/bootstrap.min.js index ef5f088d47..27aace3138 100644 --- a/docs/assets/js/bootstrap.min.js +++ b/docs/assets/js/bootstrap.min.js @@ -3,1957 +3,5 @@ * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -var bootstrap = function(t, e, n) { - "use strict"; - function i(t, e) { - for (var n = 0; n < e.length; n++) { - var i = e[n]; - i.enumerable = i.enumerable || !1, - i.configurable = !0, - "value" in i && (i.writable = !0), - Object.defineProperty(t, i.key, i); - } - } - e = e && e.hasOwnProperty("default") ? e.default : e, n = n && n.hasOwnProperty("default") ? n.default : n; - var s = function() { - function t(t) { - return {}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); - } - function n() { - return { - bindType: r.end, - delegateType: r.end, - handle: function(t) { - if (e(t.target).is(this)) return t.handleObj.handler.apply(this, arguments); - }, - }; - } - function i() { - if (window.QUnit) return !1; - var t = document.createElement("bootstrap"); - for (var e in o) if ("undefined" != typeof t.style[e]) return { end: o[e] }; - return !1; - } - function s(t) { - var n = this, i = !1; - return e(this).one(a.TRANSITION_END, function() { - i = !0; - }), - setTimeout(function() { - i || a.triggerTransitionEnd(n); - }, t), - this; - } - var r = !1, - o = { - WebkitTransition: "webkitTransitionEnd", - MozTransition: "transitionend", - OTransition: "oTransitionEnd otransitionend", - transition: "transitionend", - }, - a = { - TRANSITION_END: "bsTransitionEnd", - getUID: function(t) { - do { - t += ~~(1e6 * Math.random()); - } while (document.getElementById(t)); - return t; - }, - getSelectorFromElement: function(t) { - var n = t.getAttribute("data-target"); - n && "#" !== n || (n = t.getAttribute("href") || ""); - try { - return e(document).find(n).length > 0 ? n : null; - } catch (t) { - return null; - } - }, - reflow: function(t) { - return t.offsetHeight; - }, - triggerTransitionEnd: function(t) { - e(t).trigger(r.end); - }, - supportsTransitionEnd: function() { - return Boolean(r); - }, - isElement: function(t) { - return (t[0] || t).nodeType; - }, - typeCheckConfig: function(e, n, i) { - for (var s in i) { - if (Object.prototype.hasOwnProperty.call(i, s)) { - var r = i[s], o = n[s], l = o && a.isElement(o) ? "element" : t(o); - if (!new RegExp(r).test(l)) { - throw new Error( - e.toUpperCase() + ": Option \"" + s + "\" provided type \"" + l + "\" but expected type \"" + r - + "\".", - ); - } - } - } - }, - }; - return r = i(), - e.fn.emulateTransitionEnd = s, - a.supportsTransitionEnd() && (e.event.special[a.TRANSITION_END] = n()), - a; - }(), - r = function(t, e, n) { - return e && i(t.prototype, e), n && i(t, n), t; - }, - o = function(t, e) { - t.prototype = Object.create(e.prototype), t.prototype.constructor = t, t.__proto__ = e; - }, - a = function() { - var t = "alert", - n = e.fn[t], - i = { CLOSE: "close.bs.alert", CLOSED: "closed.bs.alert", CLICK_DATA_API: "click.bs.alert.data-api" }, - o = { ALERT: "alert", FADE: "fade", SHOW: "show" }, - a = function() { - function t(t) { - this._element = t; - } - var n = t.prototype; - return n.close = function(t) { - t = t || this._element; - var e = this._getRootElement(t); - this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e); - }, - n.dispose = function() { - e.removeData(this._element, "bs.alert"), this._element = null; - }, - n._getRootElement = function(t) { - var n = s.getSelectorFromElement(t), i = !1; - return n && (i = e(n)[0]), i || (i = e(t).closest("." + o.ALERT)[0]), i; - }, - n._triggerCloseEvent = function(t) { - var n = e.Event(i.CLOSE); - return e(t).trigger(n), n; - }, - n._removeElement = function(t) { - var n = this; - e(t).removeClass(o.SHOW), - s.supportsTransitionEnd() && e(t).hasClass(o.FADE) - ? e(t).one(s.TRANSITION_END, function(e) { - return n._destroyElement(t, e); - }).emulateTransitionEnd(150) - : this._destroyElement(t); - }, - n._destroyElement = function(t) { - e(t).detach().trigger(i.CLOSED).remove(); - }, - t._jQueryInterface = function(n) { - return this.each(function() { - var i = e(this), s = i.data("bs.alert"); - s || (s = new t(this), i.data("bs.alert", s)), "close" === n && s[n](this); - }); - }, - t._handleDismiss = function(t) { - return function(e) { - e && e.preventDefault(), t.close(this); - }; - }, - r(t, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }]), - t; - }(); - return e(document).on( - i.CLICK_DATA_API, - { DISMISS: "[data-dismiss=\"alert\"]" }.DISMISS, - a._handleDismiss(new a()), - ), - e.fn[t] = a._jQueryInterface, - e.fn[t].Constructor = a, - e.fn[t].noConflict = function() { - return e.fn[t] = n, a._jQueryInterface; - }, - a; - }(), - l = function() { - var t = "button", - n = e.fn[t], - i = { ACTIVE: "active", BUTTON: "btn", FOCUS: "focus" }, - s = { - DATA_TOGGLE_CARROT: "[data-toggle^=\"button\"]", - DATA_TOGGLE: "[data-toggle=\"buttons\"]", - INPUT: "input", - ACTIVE: ".active", - BUTTON: ".btn", - }, - o = { - CLICK_DATA_API: "click.bs.button.data-api", - FOCUS_BLUR_DATA_API: "focus.bs.button.data-api blur.bs.button.data-api", - }, - a = function() { - function t(t) { - this._element = t; - } - var n = t.prototype; - return n.toggle = function() { - var t = !0, n = !0, r = e(this._element).closest(s.DATA_TOGGLE)[0]; - if (r) { - var o = e(this._element).find(s.INPUT)[0]; - if (o) { - if ("radio" === o.type) { - if (o.checked && e(this._element).hasClass(i.ACTIVE)) t = !1; - else { - var a = e(r).find(s.ACTIVE)[0]; - a && e(a).removeClass(i.ACTIVE); - } - } - if (t) { - if ( - o.hasAttribute("disabled") || r.hasAttribute("disabled") || o.classList.contains("disabled") - || r.classList.contains("disabled") - ) return; - o.checked = !e(this._element).hasClass(i.ACTIVE), e(o).trigger("change"); - } - o.focus(), n = !1; - } - } - n && this._element.setAttribute("aria-pressed", !e(this._element).hasClass(i.ACTIVE)), - t && e(this._element).toggleClass(i.ACTIVE); - }, - n.dispose = function() { - e.removeData(this._element, "bs.button"), this._element = null; - }, - t._jQueryInterface = function(n) { - return this.each(function() { - var i = e(this).data("bs.button"); - i || (i = new t(this), e(this).data("bs.button", i)), "toggle" === n && i[n](); - }); - }, - r(t, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }]), - t; - }(); - return e(document).on(o.CLICK_DATA_API, s.DATA_TOGGLE_CARROT, function(t) { - t.preventDefault(); - var n = t.target; - e(n).hasClass(i.BUTTON) || (n = e(n).closest(s.BUTTON)), a._jQueryInterface.call(e(n), "toggle"); - }).on(o.FOCUS_BLUR_DATA_API, s.DATA_TOGGLE_CARROT, function(t) { - var n = e(t.target).closest(s.BUTTON)[0]; - e(n).toggleClass(i.FOCUS, /^focus(in)?$/.test(t.type)); - }), - e.fn[t] = a._jQueryInterface, - e.fn[t].Constructor = a, - e.fn[t].noConflict = function() { - return e.fn[t] = n, a._jQueryInterface; - }, - a; - }(), - h = function() { - var t = "carousel", - n = "bs.carousel", - i = "." + n, - o = e.fn[t], - a = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0 }, - l = { - interval: "(number|boolean)", - keyboard: "boolean", - slide: "(boolean|string)", - pause: "(string|boolean)", - wrap: "boolean", - }, - h = { NEXT: "next", PREV: "prev", LEFT: "left", RIGHT: "right" }, - c = { - SLIDE: "slide" + i, - SLID: "slid" + i, - KEYDOWN: "keydown" + i, - MOUSEENTER: "mouseenter" + i, - MOUSELEAVE: "mouseleave" + i, - TOUCHEND: "touchend" + i, - LOAD_DATA_API: "load.bs.carousel.data-api", - CLICK_DATA_API: "click.bs.carousel.data-api", - }, - u = { - CAROUSEL: "carousel", - ACTIVE: "active", - SLIDE: "slide", - RIGHT: "carousel-item-right", - LEFT: "carousel-item-left", - NEXT: "carousel-item-next", - PREV: "carousel-item-prev", - ITEM: "carousel-item", - }, - d = { - ACTIVE: ".active", - ACTIVE_ITEM: ".active.carousel-item", - ITEM: ".carousel-item", - NEXT_PREV: ".carousel-item-next, .carousel-item-prev", - INDICATORS: ".carousel-indicators", - DATA_SLIDE: "[data-slide], [data-slide-to]", - DATA_RIDE: "[data-ride=\"carousel\"]", - }, - f = function() { - function o(t, n) { - this._items = null, - this._interval = null, - this._activeElement = null, - this._isPaused = !1, - this._isSliding = !1, - this.touchTimeout = null, - this._config = this._getConfig(n), - this._element = e(t)[0], - this._indicatorsElement = e(this._element).find(d.INDICATORS)[0], - this._addEventListeners(); - } - var f = o.prototype; - return f.next = function() { - this._isSliding || this._slide(h.NEXT); - }, - f.nextWhenVisible = function() { - !document.hidden && e(this._element).is(":visible") && "hidden" !== e(this._element).css("visibility") - && this.next(); - }, - f.prev = function() { - this._isSliding || this._slide(h.PREV); - }, - f.pause = function(t) { - t || (this._isPaused = !0), - e(this._element).find(d.NEXT_PREV)[0] && s.supportsTransitionEnd() - && (s.triggerTransitionEnd(this._element), this.cycle(!0)), - clearInterval(this._interval), - this._interval = null; - }, - f.cycle = function(t) { - t || (this._isPaused = !1), - this._interval && (clearInterval(this._interval), this._interval = null), - this._config.interval && !this._isPaused - && (this._interval = setInterval( - (document.visibilityState ? this.nextWhenVisible : this.next).bind(this), - this._config.interval, - )); - }, - f.to = function(t) { - var n = this; - this._activeElement = e(this._element).find(d.ACTIVE_ITEM)[0]; - var i = this._getItemIndex(this._activeElement); - if (!(t > this._items.length - 1 || t < 0)) { - if (this._isSliding) {e(this._element).one(c.SLID, function() { - return n.to(t); - });} else { - if (i === t) return this.pause(), void this.cycle(); - var s = t > i ? h.NEXT : h.PREV; - this._slide(s, this._items[t]); - } - } - }, - f.dispose = function() { - e(this._element).off(i), - e.removeData(this._element, n), - this._items = null, - this._config = null, - this._element = null, - this._interval = null, - this._isPaused = null, - this._isSliding = null, - this._activeElement = null, - this._indicatorsElement = null; - }, - f._getConfig = function(n) { - return n = e.extend({}, a, n), s.typeCheckConfig(t, n, l), n; - }, - f._addEventListeners = function() { - var t = this; - this._config.keyboard && e(this._element).on(c.KEYDOWN, function(e) { - return t._keydown(e); - }), - "hover" === this._config.pause && (e(this._element).on(c.MOUSEENTER, function(e) { - return t.pause(e); - }).on(c.MOUSELEAVE, function(e) { - return t.cycle(e); - }), - "ontouchstart" in document.documentElement && e(this._element).on(c.TOUCHEND, function() { - t.pause(), - t.touchTimeout && clearTimeout(t.touchTimeout), - t.touchTimeout = setTimeout(function(e) { - return t.cycle(e); - }, 500 + t._config.interval); - })); - }, - f._keydown = function(t) { - if (!/input|textarea/i.test(t.target.tagName)) { - switch (t.which) { - case 37: - t.preventDefault(), this.prev(); - break; - case 39: - t.preventDefault(), this.next(); - break; - default: - return; - } - } - }, - f._getItemIndex = function(t) { - return this._items = e.makeArray(e(t).parent().find(d.ITEM)), this._items.indexOf(t); - }, - f._getItemByDirection = function(t, e) { - var n = t === h.NEXT, i = t === h.PREV, s = this._getItemIndex(e), r = this._items.length - 1; - if ((i && 0 === s || n && s === r) && !this._config.wrap) return e; - var o = (s + (t === h.PREV ? -1 : 1)) % this._items.length; - return -1 === o ? this._items[this._items.length - 1] : this._items[o]; - }, - f._triggerSlideEvent = function(t, n) { - var i = this._getItemIndex(t), - s = this._getItemIndex(e(this._element).find(d.ACTIVE_ITEM)[0]), - r = e.Event(c.SLIDE, { relatedTarget: t, direction: n, from: s, to: i }); - return e(this._element).trigger(r), r; - }, - f._setActiveIndicatorElement = function(t) { - if (this._indicatorsElement) { - e(this._indicatorsElement).find(d.ACTIVE).removeClass(u.ACTIVE); - var n = this._indicatorsElement.children[this._getItemIndex(t)]; - n && e(n).addClass(u.ACTIVE); - } - }, - f._slide = function(t, n) { - var i, - r, - o, - a = this, - l = e(this._element).find(d.ACTIVE_ITEM)[0], - f = this._getItemIndex(l), - _ = n || l && this._getItemByDirection(t, l), - g = this._getItemIndex(_), - m = Boolean(this._interval); - if ( - t === h.NEXT ? (i = u.LEFT, r = u.NEXT, o = h.LEFT) : (i = u.RIGHT, r = u.PREV, o = h.RIGHT), - _ && e(_).hasClass(u.ACTIVE) - ) this._isSliding = !1; - else if (!this._triggerSlideEvent(_, o).isDefaultPrevented() && l && _) { - this._isSliding = !0, m && this.pause(), this._setActiveIndicatorElement(_); - var p = e.Event(c.SLID, { relatedTarget: _, direction: o, from: f, to: g }); - s.supportsTransitionEnd() && e(this._element).hasClass(u.SLIDE) - ? (e(_).addClass(r), - s.reflow(_), - e(l).addClass(i), - e(_).addClass(i), - e(l).one(s.TRANSITION_END, function() { - e(_).removeClass(i + " " + r).addClass(u.ACTIVE), - e(l).removeClass(u.ACTIVE + " " + r + " " + i), - a._isSliding = !1, - setTimeout(function() { - return e(a._element).trigger(p); - }, 0); - }).emulateTransitionEnd(600)) - : (e(l).removeClass(u.ACTIVE), - e(_).addClass(u.ACTIVE), - this._isSliding = !1, - e(this._element).trigger(p)), m && this.cycle(); - } - }, - o._jQueryInterface = function(t) { - return this.each(function() { - var i = e(this).data(n), s = e.extend({}, a, e(this).data()); - "object" == typeof t && e.extend(s, t); - var r = "string" == typeof t ? t : s.slide; - if (i || (i = new o(this, s), e(this).data(n, i)), "number" == typeof t) i.to(t); - else if ("string" == typeof r) { - if ("undefined" == typeof i[r]) throw new Error("No method named \"" + r + "\""); - i[r](); - } else s.interval && (i.pause(), i.cycle()); - }); - }, - o._dataApiClickHandler = function(t) { - var i = s.getSelectorFromElement(this); - if (i) { - var r = e(i)[0]; - if (r && e(r).hasClass(u.CAROUSEL)) { - var a = e.extend({}, e(r).data(), e(this).data()), l = this.getAttribute("data-slide-to"); - l && (a.interval = !1), o._jQueryInterface.call(e(r), a), l && e(r).data(n).to(l), t.preventDefault(); - } - } - }, - r(o, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }, { - key: "Default", - get: function() { - return a; - }, - }]), - o; - }(); - return e(document).on(c.CLICK_DATA_API, d.DATA_SLIDE, f._dataApiClickHandler), - e(window).on(c.LOAD_DATA_API, function() { - e(d.DATA_RIDE).each(function() { - var t = e(this); - f._jQueryInterface.call(t, t.data()); - }); - }), - e.fn[t] = f._jQueryInterface, - e.fn[t].Constructor = f, - e.fn[t].noConflict = function() { - return e.fn[t] = o, f._jQueryInterface; - }, - f; - }(), - c = function() { - var t = "collapse", - n = "bs.collapse", - i = e.fn[t], - o = { toggle: !0, parent: "" }, - a = { toggle: "boolean", parent: "(string|element)" }, - l = { - SHOW: "show.bs.collapse", - SHOWN: "shown.bs.collapse", - HIDE: "hide.bs.collapse", - HIDDEN: "hidden.bs.collapse", - CLICK_DATA_API: "click.bs.collapse.data-api", - }, - h = { SHOW: "show", COLLAPSE: "collapse", COLLAPSING: "collapsing", COLLAPSED: "collapsed" }, - c = { WIDTH: "width", HEIGHT: "height" }, - u = { ACTIVES: ".show, .collapsing", DATA_TOGGLE: "[data-toggle=\"collapse\"]" }, - d = function() { - function i(t, n) { - this._isTransitioning = !1, - this._element = t, - this._config = this._getConfig(n), - this._triggerArray = e.makeArray( - e( - "[data-toggle=\"collapse\"][href=\"#" + t.id + "\"],[data-toggle=\"collapse\"][data-target=\"#" + t.id - + "\"]", - ), - ); - for (var i = e(u.DATA_TOGGLE), r = 0; r < i.length; r++) { - var o = i[r], a = s.getSelectorFromElement(o); - null !== a && e(a).filter(t).length > 0 && this._triggerArray.push(o); - } - this._parent = this._config.parent ? this._getParent() : null, - this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), - this._config.toggle && this.toggle(); - } - var d = i.prototype; - return d.toggle = function() { - e(this._element).hasClass(h.SHOW) ? this.hide() : this.show(); - }, - d.show = function() { - var t = this; - if (!this._isTransitioning && !e(this._element).hasClass(h.SHOW)) { - var r, o; - if ( - this._parent - && ((r = e.makeArray(e(this._parent).children().children(u.ACTIVES))).length || (r = null)), - !(r && (o = e(r).data(n)) && o._isTransitioning) - ) { - var a = e.Event(l.SHOW); - if (e(this._element).trigger(a), !a.isDefaultPrevented()) { - r && (i._jQueryInterface.call(e(r), "hide"), o || e(r).data(n, null)); - var c = this._getDimension(); - e(this._element).removeClass(h.COLLAPSE).addClass(h.COLLAPSING), - this._element.style[c] = 0, - this._triggerArray.length - && e(this._triggerArray).removeClass(h.COLLAPSED).attr("aria-expanded", !0), - this.setTransitioning(!0); - var d = function() { - e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).addClass(h.SHOW), - t._element.style[c] = "", - t.setTransitioning(!1), - e(t._element).trigger(l.SHOWN); - }; - if (s.supportsTransitionEnd()) { - var f = "scroll" + (c[0].toUpperCase() + c.slice(1)); - e(this._element).one(s.TRANSITION_END, d).emulateTransitionEnd(600), - this._element.style[c] = this._element[f] + "px"; - } else d(); - } - } - } - }, - d.hide = function() { - var t = this; - if (!this._isTransitioning && e(this._element).hasClass(h.SHOW)) { - var n = e.Event(l.HIDE); - if (e(this._element).trigger(n), !n.isDefaultPrevented()) { - var i = this._getDimension(); - if ( - this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", - s.reflow(this._element), - e(this._element).addClass(h.COLLAPSING).removeClass(h.COLLAPSE).removeClass(h.SHOW), - this._triggerArray.length - ) { - for (var r = 0; r < this._triggerArray.length; r++) { - var o = this._triggerArray[r], a = s.getSelectorFromElement(o); - null !== a && (e(a).hasClass(h.SHOW) || e(o).addClass(h.COLLAPSED).attr("aria-expanded", !1)); - } - } - this.setTransitioning(!0); - var c = function() { - t.setTransitioning(!1), - e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).trigger(l.HIDDEN); - }; - this._element.style[i] = "", - s.supportsTransitionEnd() - ? e(this._element).one(s.TRANSITION_END, c).emulateTransitionEnd(600) - : c(); - } - } - }, - d.setTransitioning = function(t) { - this._isTransitioning = t; - }, - d.dispose = function() { - e.removeData(this._element, n), - this._config = null, - this._parent = null, - this._element = null, - this._triggerArray = null, - this._isTransitioning = null; - }, - d._getConfig = function(n) { - return n = e.extend({}, o, n), n.toggle = Boolean(n.toggle), s.typeCheckConfig(t, n, a), n; - }, - d._getDimension = function() { - return e(this._element).hasClass(c.WIDTH) ? c.WIDTH : c.HEIGHT; - }, - d._getParent = function() { - var t = this, n = null; - s.isElement(this._config.parent) - ? (n = this._config.parent, - "undefined" != typeof this._config.parent.jquery && (n = this._config.parent[0])) - : n = e(this._config.parent)[0]; - var r = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]"; - return e(n).find(r).each(function(e, n) { - t._addAriaAndCollapsedClass(i._getTargetFromElement(n), [n]); - }), - n; - }, - d._addAriaAndCollapsedClass = function(t, n) { - if (t) { - var i = e(t).hasClass(h.SHOW); - n.length && e(n).toggleClass(h.COLLAPSED, !i).attr("aria-expanded", i); - } - }, - i._getTargetFromElement = function(t) { - var n = s.getSelectorFromElement(t); - return n ? e(n)[0] : null; - }, - i._jQueryInterface = function(t) { - return this.each(function() { - var s = e(this), r = s.data(n), a = e.extend({}, o, s.data(), "object" == typeof t && t); - if ( - !r && a.toggle && /show|hide/.test(t) && (a.toggle = !1), - r || (r = new i(this, a), s.data(n, r)), - "string" == typeof t - ) { - if ("undefined" == typeof r[t]) throw new Error("No method named \"" + t + "\""); - r[t](); - } - }); - }, - r(i, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }, { - key: "Default", - get: function() { - return o; - }, - }]), - i; - }(); - return e(document).on(l.CLICK_DATA_API, u.DATA_TOGGLE, function(t) { - "A" === t.currentTarget.tagName && t.preventDefault(); - var i = e(this), r = s.getSelectorFromElement(this); - e(r).each(function() { - var t = e(this), s = t.data(n) ? "toggle" : i.data(); - d._jQueryInterface.call(t, s); - }); - }), - e.fn[t] = d._jQueryInterface, - e.fn[t].Constructor = d, - e.fn[t].noConflict = function() { - return e.fn[t] = i, d._jQueryInterface; - }, - d; - }(), - u = function() { - if ("undefined" == typeof n) throw new Error("Bootstrap dropdown require Popper.js (https://popper.js.org)"); - var t = "dropdown", - i = "bs.dropdown", - o = "." + i, - a = e.fn[t], - l = new RegExp("38|40|27"), - h = { - HIDE: "hide" + o, - HIDDEN: "hidden" + o, - SHOW: "show" + o, - SHOWN: "shown" + o, - CLICK: "click" + o, - CLICK_DATA_API: "click.bs.dropdown.data-api", - KEYDOWN_DATA_API: "keydown.bs.dropdown.data-api", - KEYUP_DATA_API: "keyup.bs.dropdown.data-api", - }, - c = { - DISABLED: "disabled", - SHOW: "show", - DROPUP: "dropup", - MENURIGHT: "dropdown-menu-right", - MENULEFT: "dropdown-menu-left", - }, - u = { - DATA_TOGGLE: "[data-toggle=\"dropdown\"]", - FORM_CHILD: ".dropdown form", - MENU: ".dropdown-menu", - NAVBAR_NAV: ".navbar-nav", - VISIBLE_ITEMS: ".dropdown-menu .dropdown-item:not(.disabled)", - }, - d = { TOP: "top-start", TOPEND: "top-end", BOTTOM: "bottom-start", BOTTOMEND: "bottom-end" }, - f = { offset: 0, flip: !0 }, - _ = { offset: "(number|string|function)", flip: "boolean" }, - g = function() { - function a(t, e) { - this._element = t, - this._popper = null, - this._config = this._getConfig(e), - this._menu = this._getMenuElement(), - this._inNavbar = this._detectNavbar(), - this._addEventListeners(); - } - var g = a.prototype; - return g.toggle = function() { - if (!this._element.disabled && !e(this._element).hasClass(c.DISABLED)) { - var t = a._getParentFromElement(this._element), i = e(this._menu).hasClass(c.SHOW); - if (a._clearMenus(), !i) { - var s = { relatedTarget: this._element }, r = e.Event(h.SHOW, s); - if (e(t).trigger(r), !r.isDefaultPrevented()) { - var o = this._element; - e(t).hasClass(c.DROPUP) && (e(this._menu).hasClass(c.MENULEFT) || e(this._menu).hasClass(c.MENURIGHT)) - && (o = t), - this._popper = new n(o, this._menu, this._getPopperConfig()), - "ontouchstart" in document.documentElement && !e(t).closest(u.NAVBAR_NAV).length - && e("body").children().on("mouseover", null, e.noop), - this._element.focus(), - this._element.setAttribute("aria-expanded", !0), - e(this._menu).toggleClass(c.SHOW), - e(t).toggleClass(c.SHOW).trigger(e.Event(h.SHOWN, s)); - } - } - } - }, - g.dispose = function() { - e.removeData(this._element, i), - e(this._element).off(o), - this._element = null, - this._menu = null, - null !== this._popper && this._popper.destroy(), - this._popper = null; - }, - g.update = function() { - this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate(); - }, - g._addEventListeners = function() { - var t = this; - e(this._element).on(h.CLICK, function(e) { - e.preventDefault(), e.stopPropagation(), t.toggle(); - }); - }, - g._getConfig = function(n) { - return n = e.extend({}, this.constructor.Default, e(this._element).data(), n), - s.typeCheckConfig(t, n, this.constructor.DefaultType), - n; - }, - g._getMenuElement = function() { - if (!this._menu) { - var t = a._getParentFromElement(this._element); - this._menu = e(t).find(u.MENU)[0]; - } - return this._menu; - }, - g._getPlacement = function() { - var t = e(this._element).parent(), n = d.BOTTOM; - return t.hasClass(c.DROPUP) - ? (n = d.TOP, e(this._menu).hasClass(c.MENURIGHT) && (n = d.TOPEND)) - : e(this._menu).hasClass(c.MENURIGHT) && (n = d.BOTTOMEND), - n; - }, - g._detectNavbar = function() { - return e(this._element).closest(".navbar").length > 0; - }, - g._getPopperConfig = function() { - var t = this, n = {}; - "function" == typeof this._config.offset - ? n.fn = function(n) { - return n.offsets = e.extend({}, n.offsets, t._config.offset(n.offsets) || {}), n; - } - : n.offset = this._config.offset; - var i = { - placement: this._getPlacement(), - modifiers: { offset: n, flip: { enabled: this._config.flip } }, - }; - return this._inNavbar && (i.modifiers.applyStyle = { enabled: !this._inNavbar }), i; - }, - a._jQueryInterface = function(t) { - return this.each(function() { - var n = e(this).data(i), s = "object" == typeof t ? t : null; - if (n || (n = new a(this, s), e(this).data(i, n)), "string" == typeof t) { - if ("undefined" == typeof n[t]) throw new Error("No method named \"" + t + "\""); - n[t](); - } - }); - }, - a._clearMenus = function(t) { - if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which)) { - for (var n = e.makeArray(e(u.DATA_TOGGLE)), s = 0; s < n.length; s++) { - var r = a._getParentFromElement(n[s]), o = e(n[s]).data(i), l = { relatedTarget: n[s] }; - if (o) { - var d = o._menu; - if ( - e(r).hasClass(c.SHOW) - && !(t - && ("click" === t.type && /input|textarea/i.test(t.target.tagName) - || "keyup" === t.type && 9 === t.which) - && e.contains(r, t.target)) - ) { - var f = e.Event(h.HIDE, l); - e(r).trigger(f), - f.isDefaultPrevented() - || ("ontouchstart" in document.documentElement - && e("body").children().off("mouseover", null, e.noop), - n[s].setAttribute("aria-expanded", "false"), - e(d).removeClass(c.SHOW), - e(r).removeClass(c.SHOW).trigger(e.Event(h.HIDDEN, l))); - } - } - } - } - }, - a._getParentFromElement = function(t) { - var n, i = s.getSelectorFromElement(t); - return i && (n = e(i)[0]), n || t.parentNode; - }, - a._dataApiKeydownHandler = function(t) { - if ( - !(!l.test(t.which) || /button/i.test(t.target.tagName) && 32 === t.which - || /input|textarea/i.test(t.target.tagName) - || (t.preventDefault(), t.stopPropagation(), this.disabled || e(this).hasClass(c.DISABLED))) - ) { - var n = a._getParentFromElement(this), i = e(n).hasClass(c.SHOW); - if ((i || 27 === t.which && 32 === t.which) && (!i || 27 !== t.which && 32 !== t.which)) { - var s = e(n).find(u.VISIBLE_ITEMS).get(); - if (s.length) { - var r = s.indexOf(t.target); - 38 === t.which && r > 0 && r--, - 40 === t.which && r < s.length - 1 && r++, - r < 0 && (r = 0), - s[r].focus(); - } - } else { - if (27 === t.which) { - var o = e(n).find(u.DATA_TOGGLE)[0]; - e(o).trigger("focus"); - } - e(this).trigger("click"); - } - } - }, - r(a, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }, { - key: "Default", - get: function() { - return f; - }, - }, { - key: "DefaultType", - get: function() { - return _; - }, - }]), - a; - }(); - return e(document).on(h.KEYDOWN_DATA_API, u.DATA_TOGGLE, g._dataApiKeydownHandler).on( - h.KEYDOWN_DATA_API, - u.MENU, - g._dataApiKeydownHandler, - ).on(h.CLICK_DATA_API + " " + h.KEYUP_DATA_API, g._clearMenus).on(h.CLICK_DATA_API, u.DATA_TOGGLE, function(t) { - t.preventDefault(), t.stopPropagation(), g._jQueryInterface.call(e(this), "toggle"); - }).on(h.CLICK_DATA_API, u.FORM_CHILD, function(t) { - t.stopPropagation(); - }), - e.fn[t] = g._jQueryInterface, - e.fn[t].Constructor = g, - e.fn[t].noConflict = function() { - return e.fn[t] = a, g._jQueryInterface; - }, - g; - }(), - d = function() { - var t = "modal", - n = ".bs.modal", - i = e.fn[t], - o = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }, - a = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean" }, - l = { - HIDE: "hide.bs.modal", - HIDDEN: "hidden.bs.modal", - SHOW: "show.bs.modal", - SHOWN: "shown.bs.modal", - FOCUSIN: "focusin.bs.modal", - RESIZE: "resize.bs.modal", - CLICK_DISMISS: "click.dismiss.bs.modal", - KEYDOWN_DISMISS: "keydown.dismiss.bs.modal", - MOUSEUP_DISMISS: "mouseup.dismiss.bs.modal", - MOUSEDOWN_DISMISS: "mousedown.dismiss.bs.modal", - CLICK_DATA_API: "click.bs.modal.data-api", - }, - h = { - SCROLLBAR_MEASURER: "modal-scrollbar-measure", - BACKDROP: "modal-backdrop", - OPEN: "modal-open", - FADE: "fade", - SHOW: "show", - }, - c = { - DIALOG: ".modal-dialog", - DATA_TOGGLE: "[data-toggle=\"modal\"]", - DATA_DISMISS: "[data-dismiss=\"modal\"]", - FIXED_CONTENT: ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", - STICKY_CONTENT: ".sticky-top", - NAVBAR_TOGGLER: ".navbar-toggler", - }, - u = function() { - function i(t, n) { - this._config = this._getConfig(n), - this._element = t, - this._dialog = e(t).find(c.DIALOG)[0], - this._backdrop = null, - this._isShown = !1, - this._isBodyOverflowing = !1, - this._ignoreBackdropClick = !1, - this._originalBodyPadding = 0, - this._scrollbarWidth = 0; - } - var u = i.prototype; - return u.toggle = function(t) { - return this._isShown ? this.hide() : this.show(t); - }, - u.show = function(t) { - var n = this; - if (!this._isTransitioning && !this._isShown) { - s.supportsTransitionEnd() && e(this._element).hasClass(h.FADE) && (this._isTransitioning = !0); - var i = e.Event(l.SHOW, { relatedTarget: t }); - e(this._element).trigger(i), - this._isShown || i.isDefaultPrevented() - || (this._isShown = !0, - this._checkScrollbar(), - this._setScrollbar(), - this._adjustDialog(), - e(document.body).addClass(h.OPEN), - this._setEscapeEvent(), - this._setResizeEvent(), - e(this._element).on(l.CLICK_DISMISS, c.DATA_DISMISS, function(t) { - return n.hide(t); - }), - e(this._dialog).on(l.MOUSEDOWN_DISMISS, function() { - e(n._element).one(l.MOUSEUP_DISMISS, function(t) { - e(t.target).is(n._element) && (n._ignoreBackdropClick = !0); - }); - }), - this._showBackdrop(function() { - return n._showElement(t); - })); - } - }, - u.hide = function(t) { - var n = this; - if (t && t.preventDefault(), !this._isTransitioning && this._isShown) { - var i = e.Event(l.HIDE); - if (e(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) { - this._isShown = !1; - var r = s.supportsTransitionEnd() && e(this._element).hasClass(h.FADE); - r && (this._isTransitioning = !0), - this._setEscapeEvent(), - this._setResizeEvent(), - e(document).off(l.FOCUSIN), - e(this._element).removeClass(h.SHOW), - e(this._element).off(l.CLICK_DISMISS), - e(this._dialog).off(l.MOUSEDOWN_DISMISS), - r - ? e(this._element).one(s.TRANSITION_END, function(t) { - return n._hideModal(t); - }).emulateTransitionEnd(300) - : this._hideModal(); - } - } - }, - u.dispose = function() { - e.removeData(this._element, "bs.modal"), - e(window, document, this._element, this._backdrop).off(n), - this._config = null, - this._element = null, - this._dialog = null, - this._backdrop = null, - this._isShown = null, - this._isBodyOverflowing = null, - this._ignoreBackdropClick = null, - this._scrollbarWidth = null; - }, - u.handleUpdate = function() { - this._adjustDialog(); - }, - u._getConfig = function(n) { - return n = e.extend({}, o, n), s.typeCheckConfig(t, n, a), n; - }, - u._showElement = function(t) { - var n = this, i = s.supportsTransitionEnd() && e(this._element).hasClass(h.FADE); - this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE - || document.body.appendChild(this._element), - this._element.style.display = "block", - this._element.removeAttribute("aria-hidden"), - this._element.scrollTop = 0, - i && s.reflow(this._element), - e(this._element).addClass(h.SHOW), - this._config.focus && this._enforceFocus(); - var r = e.Event(l.SHOWN, { relatedTarget: t }), - o = function() { - n._config.focus && n._element.focus(), n._isTransitioning = !1, e(n._element).trigger(r); - }; - i ? e(this._dialog).one(s.TRANSITION_END, o).emulateTransitionEnd(300) : o(); - }, - u._enforceFocus = function() { - var t = this; - e(document).off(l.FOCUSIN).on(l.FOCUSIN, function(n) { - document === n.target || t._element === n.target || e(t._element).has(n.target).length - || t._element.focus(); - }); - }, - u._setEscapeEvent = function() { - var t = this; - this._isShown && this._config.keyboard - ? e(this._element).on(l.KEYDOWN_DISMISS, function(e) { - 27 === e.which && (e.preventDefault(), t.hide()); - }) - : this._isShown || e(this._element).off(l.KEYDOWN_DISMISS); - }, - u._setResizeEvent = function() { - var t = this; - this._isShown - ? e(window).on(l.RESIZE, function(e) { - return t.handleUpdate(e); - }) - : e(window).off(l.RESIZE); - }, - u._hideModal = function() { - var t = this; - this._element.style.display = "none", - this._element.setAttribute("aria-hidden", !0), - this._isTransitioning = !1, - this._showBackdrop(function() { - e(document.body).removeClass(h.OPEN), - t._resetAdjustments(), - t._resetScrollbar(), - e(t._element).trigger(l.HIDDEN); - }); - }, - u._removeBackdrop = function() { - this._backdrop && (e(this._backdrop).remove(), this._backdrop = null); - }, - u._showBackdrop = function(t) { - var n = this, i = e(this._element).hasClass(h.FADE) ? h.FADE : ""; - if (this._isShown && this._config.backdrop) { - var r = s.supportsTransitionEnd() && i; - if ( - this._backdrop = document.createElement("div"), - this._backdrop.className = h.BACKDROP, - i && e(this._backdrop).addClass(i), - e(this._backdrop).appendTo(document.body), - e(this._element).on(l.CLICK_DISMISS, function(t) { - n._ignoreBackdropClick - ? n._ignoreBackdropClick = !1 - : t.target === t.currentTarget - && ("static" === n._config.backdrop ? n._element.focus() : n.hide()); - }), - r && s.reflow(this._backdrop), - e(this._backdrop).addClass(h.SHOW), - !t - ) return; - if (!r) return void t(); - e(this._backdrop).one(s.TRANSITION_END, t).emulateTransitionEnd(150); - } else if (!this._isShown && this._backdrop) { - e(this._backdrop).removeClass(h.SHOW); - var o = function() { - n._removeBackdrop(), t && t(); - }; - s.supportsTransitionEnd() && e(this._element).hasClass(h.FADE) - ? e(this._backdrop).one(s.TRANSITION_END, o).emulateTransitionEnd(150) - : o(); - } else t && t(); - }, - u._adjustDialog = function() { - var t = this._element.scrollHeight > document.documentElement.clientHeight; - !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), - this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px"); - }, - u._resetAdjustments = function() { - this._element.style.paddingLeft = "", this._element.style.paddingRight = ""; - }, - u._checkScrollbar = function() { - var t = document.body.getBoundingClientRect(); - this._isBodyOverflowing = t.left + t.right < window.innerWidth, - this._scrollbarWidth = this._getScrollbarWidth(); - }, - u._setScrollbar = function() { - var t = this; - if (this._isBodyOverflowing) { - e(c.FIXED_CONTENT).each(function(n, i) { - var s = e(i)[0].style.paddingRight, r = e(i).css("padding-right"); - e(i).data("padding-right", s).css("padding-right", parseFloat(r) + t._scrollbarWidth + "px"); - }), - e(c.STICKY_CONTENT).each(function(n, i) { - var s = e(i)[0].style.marginRight, r = e(i).css("margin-right"); - e(i).data("margin-right", s).css("margin-right", parseFloat(r) - t._scrollbarWidth + "px"); - }), - e(c.NAVBAR_TOGGLER).each(function(n, i) { - var s = e(i)[0].style.marginRight, r = e(i).css("margin-right"); - e(i).data("margin-right", s).css("margin-right", parseFloat(r) + t._scrollbarWidth + "px"); - }); - var n = document.body.style.paddingRight, i = e("body").css("padding-right"); - e("body").data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px"); - } - }, - u._resetScrollbar = function() { - e(c.FIXED_CONTENT).each(function(t, n) { - var i = e(n).data("padding-right"); - "undefined" != typeof i && e(n).css("padding-right", i).removeData("padding-right"); - }), - e(c.STICKY_CONTENT + ", " + c.NAVBAR_TOGGLER).each(function(t, n) { - var i = e(n).data("margin-right"); - "undefined" != typeof i && e(n).css("margin-right", i).removeData("margin-right"); - }); - var t = e("body").data("padding-right"); - "undefined" != typeof t && e("body").css("padding-right", t).removeData("padding-right"); - }, - u._getScrollbarWidth = function() { - var t = document.createElement("div"); - t.className = h.SCROLLBAR_MEASURER, document.body.appendChild(t); - var e = t.getBoundingClientRect().width - t.clientWidth; - return document.body.removeChild(t), e; - }, - i._jQueryInterface = function(t, n) { - return this.each(function() { - var s = e(this).data("bs.modal"), - r = e.extend({}, i.Default, e(this).data(), "object" == typeof t && t); - if (s || (s = new i(this, r), e(this).data("bs.modal", s)), "string" == typeof t) { - if ("undefined" == typeof s[t]) throw new Error("No method named \"" + t + "\""); - s[t](n); - } else r.show && s.show(n); - }); - }, - r(i, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }, { - key: "Default", - get: function() { - return o; - }, - }]), - i; - }(); - return e(document).on(l.CLICK_DATA_API, c.DATA_TOGGLE, function(t) { - var n, i = this, r = s.getSelectorFromElement(this); - r && (n = e(r)[0]); - var o = e(n).data("bs.modal") ? "toggle" : e.extend({}, e(n).data(), e(this).data()); - "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); - var a = e(n).one(l.SHOW, function(t) { - t.isDefaultPrevented() || a.one(l.HIDDEN, function() { - e(i).is(":visible") && i.focus(); - }); - }); - u._jQueryInterface.call(e(n), o, this); - }), - e.fn[t] = u._jQueryInterface, - e.fn[t].Constructor = u, - e.fn[t].noConflict = function() { - return e.fn[t] = i, u._jQueryInterface; - }, - u; - }(), - f = function() { - if ("undefined" == typeof n) throw new Error("Bootstrap tooltips require Popper.js (https://popper.js.org)"); - var t = "tooltip", - i = ".bs.tooltip", - o = e.fn[t], - a = new RegExp("(^|\\s)bs-tooltip\\S+", "g"), - l = { - animation: "boolean", - template: "string", - title: "(string|element|function)", - trigger: "string", - delay: "(number|object)", - html: "boolean", - selector: "(string|boolean)", - placement: "(string|function)", - offset: "(number|string)", - container: "(string|element|boolean)", - fallbackPlacement: "(string|array)", - }, - h = { AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left" }, - c = { - animation: !0, - template: - "
      ", - trigger: "hover focus", - title: "", - delay: 0, - html: !1, - selector: !1, - placement: "top", - offset: 0, - container: !1, - fallbackPlacement: "flip", - }, - u = { SHOW: "show", OUT: "out" }, - d = { - HIDE: "hide" + i, - HIDDEN: "hidden" + i, - SHOW: "show" + i, - SHOWN: "shown" + i, - INSERTED: "inserted" + i, - CLICK: "click" + i, - FOCUSIN: "focusin" + i, - FOCUSOUT: "focusout" + i, - MOUSEENTER: "mouseenter" + i, - MOUSELEAVE: "mouseleave" + i, - }, - f = { FADE: "fade", SHOW: "show" }, - _ = { TOOLTIP: ".tooltip", TOOLTIP_INNER: ".tooltip-inner", ARROW: ".arrow" }, - g = { HOVER: "hover", FOCUS: "focus", CLICK: "click", MANUAL: "manual" }, - m = function() { - function o(t, e) { - this._isEnabled = !0, - this._timeout = 0, - this._hoverState = "", - this._activeTrigger = {}, - this._popper = null, - this.element = t, - this.config = this._getConfig(e), - this.tip = null, - this._setListeners(); - } - var m = o.prototype; - return m.enable = function() { - this._isEnabled = !0; - }, - m.disable = function() { - this._isEnabled = !1; - }, - m.toggleEnabled = function() { - this._isEnabled = !this._isEnabled; - }, - m.toggle = function(t) { - if (this._isEnabled) { - if (t) { - var n = this.constructor.DATA_KEY, i = e(t.currentTarget).data(n); - i - || (i = new this.constructor(t.currentTarget, this._getDelegateConfig()), - e(t.currentTarget).data(n, i)), - i._activeTrigger.click = !i._activeTrigger.click, - i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i); - } else { - if (e(this.getTipElement()).hasClass(f.SHOW)) return void this._leave(null, this); - this._enter(null, this); - } - } - }, - m.dispose = function() { - clearTimeout(this._timeout), - e.removeData(this.element, this.constructor.DATA_KEY), - e(this.element).off(this.constructor.EVENT_KEY), - e(this.element).closest(".modal").off("hide.bs.modal"), - this.tip && e(this.tip).remove(), - this._isEnabled = null, - this._timeout = null, - this._hoverState = null, - this._activeTrigger = null, - null !== this._popper && this._popper.destroy(), - this._popper = null, - this.element = null, - this.config = null, - this.tip = null; - }, - m.show = function() { - var t = this; - if ("none" === e(this.element).css("display")) throw new Error("Please use show on visible elements"); - var i = e.Event(this.constructor.Event.SHOW); - if (this.isWithContent() && this._isEnabled) { - e(this.element).trigger(i); - var r = e.contains(this.element.ownerDocument.documentElement, this.element); - if (i.isDefaultPrevented() || !r) return; - var a = this.getTipElement(), l = s.getUID(this.constructor.NAME); - a.setAttribute("id", l), - this.element.setAttribute("aria-describedby", l), - this.setContent(), - this.config.animation && e(a).addClass(f.FADE); - var h = "function" == typeof this.config.placement - ? this.config.placement.call(this, a, this.element) - : this.config.placement, - c = this._getAttachment(h); - this.addAttachmentClass(c); - var d = !1 === this.config.container ? document.body : e(this.config.container); - e(a).data(this.constructor.DATA_KEY, this), - e.contains(this.element.ownerDocument.documentElement, this.tip) || e(a).appendTo(d), - e(this.element).trigger(this.constructor.Event.INSERTED), - this._popper = new n(this.element, a, { - placement: c, - modifiers: { - offset: { offset: this.config.offset }, - flip: { behavior: this.config.fallbackPlacement }, - arrow: { element: _.ARROW }, - }, - onCreate: function(e) { - e.originalPlacement !== e.placement && t._handlePopperPlacementChange(e); - }, - onUpdate: function(e) { - t._handlePopperPlacementChange(e); - }, - }), - e(a).addClass(f.SHOW), - "ontouchstart" in document.documentElement && e("body").children().on("mouseover", null, e.noop); - var g = function() { - t.config.animation && t._fixTransition(); - var n = t._hoverState; - t._hoverState = null, - e(t.element).trigger(t.constructor.Event.SHOWN), - n === u.OUT && t._leave(null, t); - }; - s.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) - ? e(this.tip).one(s.TRANSITION_END, g).emulateTransitionEnd(o._TRANSITION_DURATION) - : g(); - } - }, - m.hide = function(t) { - var n = this, - i = this.getTipElement(), - r = e.Event(this.constructor.Event.HIDE), - o = function() { - n._hoverState !== u.SHOW && i.parentNode && i.parentNode.removeChild(i), - n._cleanTipClass(), - n.element.removeAttribute("aria-describedby"), - e(n.element).trigger(n.constructor.Event.HIDDEN), - null !== n._popper && n._popper.destroy(), - t && t(); - }; - e(this.element).trigger(r), - r.isDefaultPrevented() - || (e(i).removeClass(f.SHOW), - "ontouchstart" in document.documentElement && e("body").children().off("mouseover", null, e.noop), - this._activeTrigger[g.CLICK] = !1, - this._activeTrigger[g.FOCUS] = !1, - this._activeTrigger[g.HOVER] = !1, - s.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) - ? e(i).one(s.TRANSITION_END, o).emulateTransitionEnd(150) - : o(), - this._hoverState = ""); - }, - m.update = function() { - null !== this._popper && this._popper.scheduleUpdate(); - }, - m.isWithContent = function() { - return Boolean(this.getTitle()); - }, - m.addAttachmentClass = function(t) { - e(this.getTipElement()).addClass("bs-tooltip-" + t); - }, - m.getTipElement = function() { - return this.tip = this.tip || e(this.config.template)[0], this.tip; - }, - m.setContent = function() { - var t = e(this.getTipElement()); - this.setElementContent(t.find(_.TOOLTIP_INNER), this.getTitle()), t.removeClass(f.FADE + " " + f.SHOW); - }, - m.setElementContent = function(t, n) { - var i = this.config.html; - "object" == typeof n && (n.nodeType || n.jquery) - ? i ? e(n).parent().is(t) || t.empty().append(n) : t.text(e(n).text()) - : t[i ? "html" : "text"](n); - }, - m.getTitle = function() { - var t = this.element.getAttribute("data-original-title"); - return t || (t = "function" == typeof this.config.title - ? this.config.title.call(this.element) - : this.config.title), - t; - }, - m._getAttachment = function(t) { - return h[t.toUpperCase()]; - }, - m._setListeners = function() { - var t = this; - this.config.trigger.split(" ").forEach(function(n) { - if ("click" === n) { - e(t.element).on(t.constructor.Event.CLICK, t.config.selector, function(e) { - return t.toggle(e); - }); - } else if (n !== g.MANUAL) { - var i = n === g.HOVER ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN, - s = n === g.HOVER ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT; - e(t.element).on(i, t.config.selector, function(e) { - return t._enter(e); - }).on(s, t.config.selector, function(e) { - return t._leave(e); - }); - } - e(t.element).closest(".modal").on("hide.bs.modal", function() { - return t.hide(); - }); - }), - this.config.selector - ? this.config = e.extend({}, this.config, { trigger: "manual", selector: "" }) - : this._fixTitle(); - }, - m._fixTitle = function() { - var t = typeof this.element.getAttribute("data-original-title"); - (this.element.getAttribute("title") || "string" !== t) - && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), - this.element.setAttribute("title", "")); - }, - m._enter = function(t, n) { - var i = this.constructor.DATA_KEY; - (n = n || e(t.currentTarget).data(i)) - || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(i, n)), - t && (n._activeTrigger["focusin" === t.type ? g.FOCUS : g.HOVER] = !0), - e(n.getTipElement()).hasClass(f.SHOW) || n._hoverState === u.SHOW - ? n._hoverState = u.SHOW - : (clearTimeout(n._timeout), - n._hoverState = u.SHOW, - n.config.delay && n.config.delay.show - ? n._timeout = setTimeout(function() { - n._hoverState === u.SHOW && n.show(); - }, n.config.delay.show) - : n.show()); - }, - m._leave = function(t, n) { - var i = this.constructor.DATA_KEY; - (n = n || e(t.currentTarget).data(i)) - || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(i, n)), - t && (n._activeTrigger["focusout" === t.type ? g.FOCUS : g.HOVER] = !1), - n._isWithActiveTrigger() - || (clearTimeout(n._timeout), - n._hoverState = u.OUT, - n.config.delay && n.config.delay.hide - ? n._timeout = setTimeout(function() { - n._hoverState === u.OUT && n.hide(); - }, n.config.delay.hide) - : n.hide()); - }, - m._isWithActiveTrigger = function() { - for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0; - return !1; - }, - m._getConfig = function(n) { - return "number" == typeof (n = e.extend({}, this.constructor.Default, e(this.element).data(), n)).delay - && (n.delay = { show: n.delay, hide: n.delay }), - "number" == typeof n.title && (n.title = n.title.toString()), - "number" == typeof n.content && (n.content = n.content.toString()), - s.typeCheckConfig(t, n, this.constructor.DefaultType), - n; - }, - m._getDelegateConfig = function() { - var t = {}; - if (this.config) {for (var e in this.config) {this.constructor.Default[e] !== this.config[e] - && (t[e] = this.config[e]);}} - return t; - }, - m._cleanTipClass = function() { - var t = e(this.getTipElement()), n = t.attr("class").match(a); - null !== n && n.length > 0 && t.removeClass(n.join("")); - }, - m._handlePopperPlacementChange = function(t) { - this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)); - }, - m._fixTransition = function() { - var t = this.getTipElement(), n = this.config.animation; - null === t.getAttribute("x-placement") - && (e(t).removeClass(f.FADE), - this.config.animation = !1, - this.hide(), - this.show(), - this.config.animation = n); - }, - o._jQueryInterface = function(t) { - return this.each(function() { - var n = e(this).data("bs.tooltip"), i = "object" == typeof t && t; - if ( - (n || !/dispose|hide/.test(t)) - && (n || (n = new o(this, i), e(this).data("bs.tooltip", n)), "string" == typeof t) - ) { - if ("undefined" == typeof n[t]) throw new Error("No method named \"" + t + "\""); - n[t](); - } - }); - }, - r(o, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }, { - key: "Default", - get: function() { - return c; - }, - }, { - key: "NAME", - get: function() { - return t; - }, - }, { - key: "DATA_KEY", - get: function() { - return "bs.tooltip"; - }, - }, { - key: "Event", - get: function() { - return d; - }, - }, { - key: "EVENT_KEY", - get: function() { - return i; - }, - }, { - key: "DefaultType", - get: function() { - return l; - }, - }]), - o; - }(); - return e.fn[t] = m._jQueryInterface, - e.fn[t].Constructor = m, - e.fn[t].noConflict = function() { - return e.fn[t] = o, m._jQueryInterface; - }, - m; - }(), - _ = function() { - var t = "popover", - n = ".bs.popover", - i = e.fn[t], - s = new RegExp("(^|\\s)bs-popover\\S+", "g"), - a = e.extend({}, f.Default, { - placement: "right", - trigger: "click", - content: "", - template: - "

      ", - }), - l = e.extend({}, f.DefaultType, { content: "(string|element|function)" }), - h = { FADE: "fade", SHOW: "show" }, - c = { TITLE: ".popover-header", CONTENT: ".popover-body" }, - u = { - HIDE: "hide" + n, - HIDDEN: "hidden" + n, - SHOW: "show" + n, - SHOWN: "shown" + n, - INSERTED: "inserted" + n, - CLICK: "click" + n, - FOCUSIN: "focusin" + n, - FOCUSOUT: "focusout" + n, - MOUSEENTER: "mouseenter" + n, - MOUSELEAVE: "mouseleave" + n, - }, - d = function(i) { - function d() { - return i.apply(this, arguments) || this; - } - o(d, i); - var f = d.prototype; - return f.isWithContent = function() { - return this.getTitle() || this._getContent(); - }, - f.addAttachmentClass = function(t) { - e(this.getTipElement()).addClass("bs-popover-" + t); - }, - f.getTipElement = function() { - return this.tip = this.tip || e(this.config.template)[0], this.tip; - }, - f.setContent = function() { - var t = e(this.getTipElement()); - this.setElementContent(t.find(c.TITLE), this.getTitle()), - this.setElementContent(t.find(c.CONTENT), this._getContent()), - t.removeClass(h.FADE + " " + h.SHOW); - }, - f._getContent = function() { - return this.element.getAttribute("data-content") || ("function" == typeof this.config.content - ? this.config.content.call(this.element) - : this.config.content); - }, - f._cleanTipClass = function() { - var t = e(this.getTipElement()), n = t.attr("class").match(s); - null !== n && n.length > 0 && t.removeClass(n.join("")); - }, - d._jQueryInterface = function(t) { - return this.each(function() { - var n = e(this).data("bs.popover"), i = "object" == typeof t ? t : null; - if ( - (n || !/destroy|hide/.test(t)) - && (n || (n = new d(this, i), e(this).data("bs.popover", n)), "string" == typeof t) - ) { - if ("undefined" == typeof n[t]) throw new Error("No method named \"" + t + "\""); - n[t](); - } - }); - }, - r(d, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }, { - key: "Default", - get: function() { - return a; - }, - }, { - key: "NAME", - get: function() { - return t; - }, - }, { - key: "DATA_KEY", - get: function() { - return "bs.popover"; - }, - }, { - key: "Event", - get: function() { - return u; - }, - }, { - key: "EVENT_KEY", - get: function() { - return n; - }, - }, { - key: "DefaultType", - get: function() { - return l; - }, - }]), - d; - }(f); - return e.fn[t] = d._jQueryInterface, - e.fn[t].Constructor = d, - e.fn[t].noConflict = function() { - return e.fn[t] = i, d._jQueryInterface; - }, - d; - }(), - g = function() { - var t = "scrollspy", - n = e.fn[t], - i = { offset: 10, method: "auto", target: "" }, - o = { offset: "number", method: "string", target: "(string|element)" }, - a = { - ACTIVATE: "activate.bs.scrollspy", - SCROLL: "scroll.bs.scrollspy", - LOAD_DATA_API: "load.bs.scrollspy.data-api", - }, - l = { DROPDOWN_ITEM: "dropdown-item", DROPDOWN_MENU: "dropdown-menu", ACTIVE: "active" }, - h = { - DATA_SPY: "[data-spy=\"scroll\"]", - ACTIVE: ".active", - NAV_LIST_GROUP: ".nav, .list-group", - NAV_LINKS: ".nav-link", - NAV_ITEMS: ".nav-item", - LIST_ITEMS: ".list-group-item", - DROPDOWN: ".dropdown", - DROPDOWN_ITEMS: ".dropdown-item", - DROPDOWN_TOGGLE: ".dropdown-toggle", - }, - c = { OFFSET: "offset", POSITION: "position" }, - u = function() { - function n(t, n) { - var i = this; - this._element = t, - this._scrollElement = "BODY" === t.tagName ? window : t, - this._config = this._getConfig(n), - this._selector = this._config.target + " " + h.NAV_LINKS + "," + this._config.target + " " + h.LIST_ITEMS - + "," + this._config.target + " " + h.DROPDOWN_ITEMS, - this._offsets = [], - this._targets = [], - this._activeTarget = null, - this._scrollHeight = 0, - e(this._scrollElement).on(a.SCROLL, function(t) { - return i._process(t); - }), - this.refresh(), - this._process(); - } - var u = n.prototype; - return u.refresh = function() { - var t = this, - n = this._scrollElement !== this._scrollElement.window ? c.POSITION : c.OFFSET, - i = "auto" === this._config.method ? n : this._config.method, - r = i === c.POSITION ? this._getScrollTop() : 0; - this._offsets = [], - this._targets = [], - this._scrollHeight = this._getScrollHeight(), - e.makeArray(e(this._selector)).map(function(t) { - var n, o = s.getSelectorFromElement(t); - if (o && (n = e(o)[0]), n) { - var a = n.getBoundingClientRect(); - if (a.width || a.height) return [e(n)[i]().top + r, o]; - } - return null; - }).filter(function(t) { - return t; - }).sort(function(t, e) { - return t[0] - e[0]; - }).forEach(function(e) { - t._offsets.push(e[0]), t._targets.push(e[1]); - }); - }, - u.dispose = function() { - e.removeData(this._element, "bs.scrollspy"), - e(this._scrollElement).off(".bs.scrollspy"), - this._element = null, - this._scrollElement = null, - this._config = null, - this._selector = null, - this._offsets = null, - this._targets = null, - this._activeTarget = null, - this._scrollHeight = null; - }, - u._getConfig = function(n) { - if ("string" != typeof (n = e.extend({}, i, n)).target) { - var r = e(n.target).attr("id"); - r || (r = s.getUID(t), e(n.target).attr("id", r)), n.target = "#" + r; - } - return s.typeCheckConfig(t, n, o), n; - }, - u._getScrollTop = function() { - return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - }, - u._getScrollHeight = function() { - return this._scrollElement.scrollHeight - || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - }, - u._getOffsetHeight = function() { - return this._scrollElement === window - ? window.innerHeight - : this._scrollElement.getBoundingClientRect().height; - }, - u._process = function() { - var t = this._getScrollTop() + this._config.offset, - e = this._getScrollHeight(), - n = this._config.offset + e - this._getOffsetHeight(); - if (this._scrollHeight !== e && this.refresh(), t >= n) { - var i = this._targets[this._targets.length - 1]; - this._activeTarget !== i && this._activate(i); - } else { - if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) {return this._activeTarget = - null, - void this._clear();} - for (var s = this._offsets.length; s--;) {this._activeTarget !== this._targets[s] - && t >= this._offsets[s] && ("undefined" == typeof this._offsets[s + 1] || t < this._offsets[s + 1]) - && this._activate(this._targets[s]);} - } - }, - u._activate = function(t) { - this._activeTarget = t, this._clear(); - var n = this._selector.split(","); - n = n.map(function(e) { - return e + "[data-target=\"" + t + "\"]," + e + "[href=\"" + t + "\"]"; - }); - var i = e(n.join(",")); - i.hasClass(l.DROPDOWN_ITEM) - ? (i.closest(h.DROPDOWN).find(h.DROPDOWN_TOGGLE).addClass(l.ACTIVE), i.addClass(l.ACTIVE)) - : (i.addClass(l.ACTIVE), - i.parents(h.NAV_LIST_GROUP).prev(h.NAV_LINKS + ", " + h.LIST_ITEMS).addClass(l.ACTIVE), - i.parents(h.NAV_LIST_GROUP).prev(h.NAV_ITEMS).children(h.NAV_LINKS).addClass(l.ACTIVE)), - e(this._scrollElement).trigger(a.ACTIVATE, { relatedTarget: t }); - }, - u._clear = function() { - e(this._selector).filter(h.ACTIVE).removeClass(l.ACTIVE); - }, - n._jQueryInterface = function(t) { - return this.each(function() { - var i = e(this).data("bs.scrollspy"), s = "object" == typeof t && t; - if (i || (i = new n(this, s), e(this).data("bs.scrollspy", i)), "string" == typeof t) { - if ("undefined" == typeof i[t]) throw new Error("No method named \"" + t + "\""); - i[t](); - } - }); - }, - r(n, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }, { - key: "Default", - get: function() { - return i; - }, - }]), - n; - }(); - return e(window).on(a.LOAD_DATA_API, function() { - for (var t = e.makeArray(e(h.DATA_SPY)), n = t.length; n--;) { - var i = e(t[n]); - u._jQueryInterface.call(i, i.data()); - } - }), - e.fn[t] = u._jQueryInterface, - e.fn[t].Constructor = u, - e.fn[t].noConflict = function() { - return e.fn[t] = n, u._jQueryInterface; - }, - u; - }(), - m = function() { - var t = e.fn.tab, - n = { - HIDE: "hide.bs.tab", - HIDDEN: "hidden.bs.tab", - SHOW: "show.bs.tab", - SHOWN: "shown.bs.tab", - CLICK_DATA_API: "click.bs.tab.data-api", - }, - i = { DROPDOWN_MENU: "dropdown-menu", ACTIVE: "active", DISABLED: "disabled", FADE: "fade", SHOW: "show" }, - o = { - DROPDOWN: ".dropdown", - NAV_LIST_GROUP: ".nav, .list-group", - ACTIVE: ".active", - ACTIVE_UL: "> li > .active", - DATA_TOGGLE: "[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]", - DROPDOWN_TOGGLE: ".dropdown-toggle", - DROPDOWN_ACTIVE_CHILD: "> .dropdown-menu .active", - }, - a = function() { - function t(t) { - this._element = t; - } - var a = t.prototype; - return a.show = function() { - var t = this; - if ( - !(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE - && e(this._element).hasClass(i.ACTIVE) || e(this._element).hasClass(i.DISABLED)) - ) { - var r, a, l = e(this._element).closest(o.NAV_LIST_GROUP)[0], h = s.getSelectorFromElement(this._element); - if (l) { - var c = "UL" === l.nodeName ? o.ACTIVE_UL : o.ACTIVE; - a = e.makeArray(e(l).find(c)), a = a[a.length - 1]; - } - var u = e.Event(n.HIDE, { relatedTarget: this._element }), d = e.Event(n.SHOW, { relatedTarget: a }); - if ( - a && e(a).trigger(u), e(this._element).trigger(d), !d.isDefaultPrevented() && !u.isDefaultPrevented() - ) { - h && (r = e(h)[0]), this._activate(this._element, l); - var f = function() { - var i = e.Event(n.HIDDEN, { relatedTarget: t._element }), s = e.Event(n.SHOWN, { relatedTarget: a }); - e(a).trigger(i), e(t._element).trigger(s); - }; - r ? this._activate(r, r.parentNode, f) : f(); - } - } - }, - a.dispose = function() { - e.removeData(this._element, "bs.tab"), this._element = null; - }, - a._activate = function(t, n, r) { - var a, - l = this, - h = (a = "UL" === n.nodeName ? e(n).find(o.ACTIVE_UL) : e(n).children(o.ACTIVE))[0], - c = r && s.supportsTransitionEnd() && h && e(h).hasClass(i.FADE), - u = function() { - return l._transitionComplete(t, h, c, r); - }; - h && c ? e(h).one(s.TRANSITION_END, u).emulateTransitionEnd(150) : u(), h && e(h).removeClass(i.SHOW); - }, - a._transitionComplete = function(t, n, r, a) { - if (n) { - e(n).removeClass(i.ACTIVE); - var l = e(n.parentNode).find(o.DROPDOWN_ACTIVE_CHILD)[0]; - l && e(l).removeClass(i.ACTIVE), - "tab" === n.getAttribute("role") && n.setAttribute("aria-selected", !1); - } - if ( - e(t).addClass(i.ACTIVE), - "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), - r ? (s.reflow(t), e(t).addClass(i.SHOW)) : e(t).removeClass(i.FADE), - t.parentNode && e(t.parentNode).hasClass(i.DROPDOWN_MENU) - ) { - var h = e(t).closest(o.DROPDOWN)[0]; - h && e(h).find(o.DROPDOWN_TOGGLE).addClass(i.ACTIVE), t.setAttribute("aria-expanded", !0); - } - a && a(); - }, - t._jQueryInterface = function(n) { - return this.each(function() { - var i = e(this), s = i.data("bs.tab"); - if (s || (s = new t(this), i.data("bs.tab", s)), "string" == typeof n) { - if ("undefined" == typeof s[n]) throw new Error("No method named \"" + n + "\""); - s[n](); - } - }); - }, - r(t, null, [{ - key: "VERSION", - get: function() { - return "4.0.0-beta.2"; - }, - }]), - t; - }(); - return e(document).on(n.CLICK_DATA_API, o.DATA_TOGGLE, function(t) { - t.preventDefault(), a._jQueryInterface.call(e(this), "show"); - }), - e.fn.tab = a._jQueryInterface, - e.fn.tab.Constructor = a, - e.fn.tab.noConflict = function() { - return e.fn.tab = t, a._jQueryInterface; - }, - a; - }(); - return function() { - if ("undefined" == typeof e) { - throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); - } - var t = e.fn.jquery.split(" ")[0].split("."); - if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || t[0] >= 4) { - throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0"); - } - }(), - t.Util = s, - t.Alert = a, - t.Button = l, - t.Carousel = h, - t.Collapse = c, - t.Dropdown = u, - t.Modal = d, - t.Popover = _, - t.Scrollspy = g, - t.Tab = m, - t.Tooltip = f, - t; -}({}, $, Popper); -// # sourceMappingURL=bootstrap.min.js.map +var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(r.end)},supportsTransitionEnd:function(){return Boolean(r)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){var r=i[s],o=n[s],l=o&&a.isElement(o)?"element":t(o);if(!new RegExp(r).test(l))throw new Error(e.toUpperCase()+': Option "'+s+'" provided type "'+l+'" but expected type "'+r+'".')}}};return r=i(),e.fn.emulateTransitionEnd=s,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),r=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t},o=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e},a=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},o={ALERT:"alert",FADE:"fade",SHOW:"show"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+o.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(o.SHOW),s.supportsTransitionEnd()&&e(t).hasClass(o.FADE)?e(t).one(s.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.alert");s||(s=new t(this),i.data("bs.alert",s)),"close"===n&&s[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,a._handleDismiss(new a)),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),l=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},s={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,r=e(this._element).closest(s.DATA_TOGGLE)[0];if(r){var o=e(this._element).find(s.INPUT)[0];if(o){if("radio"===o.type)if(o.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(r).find(s.ACTIVE)[0];a&&e(a).removeClass(i.ACTIVE)}if(t){if(o.hasAttribute("disabled")||r.hasAttribute("disabled")||o.classList.contains("disabled")||r.classList.contains("disabled"))return;o.checked=!e(this._element).hasClass(i.ACTIVE),e(o).trigger("change")}o.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,s.DATA_TOGGLE_CARROT,function(t){t.preventDefault();var n=t.target;e(n).hasClass(i.BUTTON)||(n=e(n).closest(s.BUTTON)),a._jQueryInterface.call(e(n),"toggle")}).on(o.FOCUS_BLUR_DATA_API,s.DATA_TOGGLE_CARROT,function(t){var n=e(t.target).closest(s.BUTTON)[0];e(n).toggleClass(i.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),h=function(){var t="carousel",n="bs.carousel",i="."+n,o=e.fn[t],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},h={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},c={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},u={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},d={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},f=function(){function o(t,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=e(t)[0],this._indicatorsElement=e(this._element).find(d.INDICATORS)[0],this._addEventListeners()}var f=o.prototype;return f.next=function(){this._isSliding||this._slide(h.NEXT)},f.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},f.prev=function(){this._isSliding||this._slide(h.PREV)},f.pause=function(t){t||(this._isPaused=!0),e(this._element).find(d.NEXT_PREV)[0]&&s.supportsTransitionEnd()&&(s.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},f.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},f.to=function(t){var n=this;this._activeElement=e(this._element).find(d.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(c.SLID,function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var s=t>i?h.NEXT:h.PREV;this._slide(s,this._items[t])}},f.dispose=function(){e(this._element).off(i),e.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},f._getConfig=function(n){return n=e.extend({},a,n),s.typeCheckConfig(t,n,l),n},f._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(c.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(e(this._element).on(c.MOUSEENTER,function(e){return t.pause(e)}).on(c.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&e(this._element).on(c.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},f._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next();break;default:return}},f._getItemIndex=function(t){return this._items=e.makeArray(e(t).parent().find(d.ITEM)),this._items.indexOf(t)},f._getItemByDirection=function(t,e){var n=t===h.NEXT,i=t===h.PREV,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0===s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===h.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},f._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),s=this._getItemIndex(e(this._element).find(d.ACTIVE_ITEM)[0]),r=e.Event(c.SLIDE,{relatedTarget:t,direction:n,from:s,to:i});return e(this._element).trigger(r),r},f._setActiveIndicatorElement=function(t){if(this._indicatorsElement){e(this._indicatorsElement).find(d.ACTIVE).removeClass(u.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&e(n).addClass(u.ACTIVE)}},f._slide=function(t,n){var i,r,o,a=this,l=e(this._element).find(d.ACTIVE_ITEM)[0],f=this._getItemIndex(l),_=n||l&&this._getItemByDirection(t,l),g=this._getItemIndex(_),m=Boolean(this._interval);if(t===h.NEXT?(i=u.LEFT,r=u.NEXT,o=h.LEFT):(i=u.RIGHT,r=u.PREV,o=h.RIGHT),_&&e(_).hasClass(u.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(_,o).isDefaultPrevented()&&l&&_){this._isSliding=!0,m&&this.pause(),this._setActiveIndicatorElement(_);var p=e.Event(c.SLID,{relatedTarget:_,direction:o,from:f,to:g});s.supportsTransitionEnd()&&e(this._element).hasClass(u.SLIDE)?(e(_).addClass(r),s.reflow(_),e(l).addClass(i),e(_).addClass(i),e(l).one(s.TRANSITION_END,function(){e(_).removeClass(i+" "+r).addClass(u.ACTIVE),e(l).removeClass(u.ACTIVE+" "+r+" "+i),a._isSliding=!1,setTimeout(function(){return e(a._element).trigger(p)},0)}).emulateTransitionEnd(600)):(e(l).removeClass(u.ACTIVE),e(_).addClass(u.ACTIVE),this._isSliding=!1,e(this._element).trigger(p)),m&&this.cycle()}},o._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),s=e.extend({},a,e(this).data());"object"==typeof t&&e.extend(s,t);var r="string"==typeof t?t:s.slide;if(i||(i=new o(this,s),e(this).data(n,i)),"number"==typeof t)i.to(t);else if("string"==typeof r){if("undefined"==typeof i[r])throw new Error('No method named "'+r+'"');i[r]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiClickHandler=function(t){var i=s.getSelectorFromElement(this);if(i){var r=e(i)[0];if(r&&e(r).hasClass(u.CAROUSEL)){var a=e.extend({},e(r).data(),e(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),o._jQueryInterface.call(e(r),a),l&&e(r).data(n).to(l),t.preventDefault()}}},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}}]),o}();return e(document).on(c.CLICK_DATA_API,d.DATA_SLIDE,f._dataApiClickHandler),e(window).on(c.LOAD_DATA_API,function(){e(d.DATA_RIDE).each(function(){var t=e(this);f._jQueryInterface.call(t,t.data())})}),e.fn[t]=f._jQueryInterface,e.fn[t].Constructor=f,e.fn[t].noConflict=function(){return e.fn[t]=o,f._jQueryInterface},f}(),c=function(){var t="collapse",n="bs.collapse",i=e.fn[t],o={toggle:!0,parent:""},a={toggle:"boolean",parent:"(string|element)"},l={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-api"},h={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},c={WIDTH:"width",HEIGHT:"height"},u={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},d=function(){function i(t,n){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(n),this._triggerArray=e.makeArray(e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var i=e(u.DATA_TOGGLE),r=0;r0&&this._triggerArray.push(o)}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var d=i.prototype;return d.toggle=function(){e(this._element).hasClass(h.SHOW)?this.hide():this.show()},d.show=function(){var t=this;if(!this._isTransitioning&&!e(this._element).hasClass(h.SHOW)){var r,o;if(this._parent&&((r=e.makeArray(e(this._parent).children().children(u.ACTIVES))).length||(r=null)),!(r&&(o=e(r).data(n))&&o._isTransitioning)){var a=e.Event(l.SHOW);if(e(this._element).trigger(a),!a.isDefaultPrevented()){r&&(i._jQueryInterface.call(e(r),"hide"),o||e(r).data(n,null));var c=this._getDimension();e(this._element).removeClass(h.COLLAPSE).addClass(h.COLLAPSING),this._element.style[c]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(h.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var d=function(){e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).addClass(h.SHOW),t._element.style[c]="",t.setTransitioning(!1),e(t._element).trigger(l.SHOWN)};if(s.supportsTransitionEnd()){var f="scroll"+(c[0].toUpperCase()+c.slice(1));e(this._element).one(s.TRANSITION_END,d).emulateTransitionEnd(600),this._element.style[c]=this._element[f]+"px"}else d()}}}},d.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(h.SHOW)){var n=e.Event(l.HIDE);if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",s.reflow(this._element),e(this._element).addClass(h.COLLAPSING).removeClass(h.COLLAPSE).removeClass(h.SHOW),this._triggerArray.length)for(var r=0;r0},g._getPopperConfig=function(){var t=this,n={};"function"==typeof this._config.offset?n.fn=function(n){return n.offsets=e.extend({},n.offsets,t._config.offset(n.offsets)||{}),n}:n.offset=this._config.offset;var i={placement:this._getPlacement(),modifiers:{offset:n,flip:{enabled:this._config.flip}}};return this._inNavbar&&(i.modifiers.applyStyle={enabled:!this._inNavbar}),i},a._jQueryInterface=function(t){return this.each(function(){var n=e(this).data(i),s="object"==typeof t?t:null;if(n||(n=new a(this,s),e(this).data(i,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},a._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=e.makeArray(e(u.DATA_TOGGLE)),s=0;s0&&r--,40===t.which&&rdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},u._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},u._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip"},u={SHOW:"show",OUT:"out"},d={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},f={FADE:"fade",SHOW:"show"},_={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},g={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},m=function(){function o(t,e){this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var m=o.prototype;return m.enable=function(){this._isEnabled=!0},m.disable=function(){this._isEnabled=!1},m.toggleEnabled=function(){this._isEnabled=!this._isEnabled},m.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass(f.SHOW))return void this._leave(null,this);this._enter(null,this)}},m.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},m.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var r=e.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!r)return;var a=this.getTipElement(),l=s.getUID(this.constructor.NAME);a.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(a).addClass(f.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,c=this._getAttachment(h);this.addAttachmentClass(c);var d=!1===this.config.container?document.body:e(this.config.container);e(a).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(a).appendTo(d),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,a,{placement:c,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:_.ARROW}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),e(a).addClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().on("mouseover",null,e.noop);var g=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===u.OUT&&t._leave(null,t)};s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(this.tip).one(s.TRANSITION_END,g).emulateTransitionEnd(o._TRANSITION_DURATION):g()}},m.hide=function(t){var n=this,i=this.getTipElement(),r=e.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==u.SHOW&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};e(this.element).trigger(r),r.isDefaultPrevented()||(e(i).removeClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),this._activeTrigger[g.CLICK]=!1,this._activeTrigger[g.FOCUS]=!1,this._activeTrigger[g.HOVER]=!1,s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(i).one(s.TRANSITION_END,o).emulateTransitionEnd(150):o(),this._hoverState="")},m.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},m.isWithContent=function(){return Boolean(this.getTitle())},m.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},m.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},m.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(_.TOOLTIP_INNER),this.getTitle()),t.removeClass(f.FADE+" "+f.SHOW)},m.setElementContent=function(t,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text()):t[i?"html":"text"](n)},m.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},m._getAttachment=function(t){return h[t.toUpperCase()]},m._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==g.MANUAL){var i=n===g.HOVER?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,s=n===g.HOVER?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(s,t.config.selector,function(e){return t._leave(e)})}e(t.element).closest(".modal").on("hide.bs.modal",function(){return t.hide()})}),this.config.selector?this.config=e.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},m._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},m._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?g.FOCUS:g.HOVER]=!0),e(n.getTipElement()).hasClass(f.SHOW)||n._hoverState===u.SHOW?n._hoverState=u.SHOW:(clearTimeout(n._timeout),n._hoverState=u.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===u.SHOW&&n.show()},n.config.delay.show):n.show())},m._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?g.FOCUS:g.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=u.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===u.OUT&&n.hide()},n.config.delay.hide):n.hide())},m._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},m._getConfig=function(n){return"number"==typeof(n=e.extend({},this.constructor.Default,e(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),s.typeCheckConfig(t,n,this.constructor.DefaultType),n},m._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},m._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(a);null!==n&&n.length>0&&t.removeClass(n.join(""))},m._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},m._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass(f.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},o._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new o(this,i),e(this).data("bs.tooltip",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return c}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return d}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return l}}]),o}();return e.fn[t]=m._jQueryInterface,e.fn[t].Constructor=m,e.fn[t].noConflict=function(){return e.fn[t]=o,m._jQueryInterface},m}(),_=function(){var t="popover",n=".bs.popover",i=e.fn[t],s=new RegExp("(^|\\s)bs-popover\\S+","g"),a=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:''}),l=e.extend({},f.DefaultType,{content:"(string|element|function)"}),h={FADE:"fade",SHOW:"show"},c={TITLE:".popover-header",CONTENT:".popover-body"},u={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},d=function(i){function d(){return i.apply(this,arguments)||this}o(d,i);var f=d.prototype;return f.isWithContent=function(){return this.getTitle()||this._getContent()},f.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},f.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},f.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(c.TITLE),this.getTitle()),this.setElementContent(t.find(c.CONTENT),this._getContent()),t.removeClass(h.FADE+" "+h.SHOW)},f._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},f._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(s);null!==n&&n.length>0&&t.removeClass(n.join(""))},d._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/destroy|hide/.test(t))&&(n||(n=new d(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(d,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return u}},{key:"EVENT_KEY",get:function(){return n}},{key:"DefaultType",get:function(){return l}}]),d}(f);return e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=i,d._jQueryInterface},d}(),g=function(){var t="scrollspy",n=e.fn[t],i={offset:10,method:"auto",target:""},o={offset:"number",method:"string",target:"(string|element)"},a={ACTIVATE:"activate.bs.scrollspy",SCROLL:"scroll.bs.scrollspy",LOAD_DATA_API:"load.bs.scrollspy.data-api"},l={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},h={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},c={OFFSET:"offset",POSITION:"position"},u=function(){function n(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" "+h.NAV_LINKS+","+this._config.target+" "+h.LIST_ITEMS+","+this._config.target+" "+h.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(a.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var u=n.prototype;return u.refresh=function(){var t=this,n=this._scrollElement!==this._scrollElement.window?c.POSITION:c.OFFSET,i="auto"===this._config.method?n:this._config.method,r=i===c.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),e.makeArray(e(this._selector)).map(function(t){var n,o=s.getSelectorFromElement(t);if(o&&(n=e(o)[0]),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[i]().top+r,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},u.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},u._getConfig=function(n){if("string"!=typeof(n=e.extend({},i,n)).target){var r=e(n.target).attr("id");r||(r=s.getUID(t),e(n.target).attr("id",r)),n.target="#"+r}return s.typeCheckConfig(t,n,o),n},u._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},u._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},u._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},u._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;)this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&("undefined"==typeof this._offsets[s+1]||t li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},a=function(){function t(t){this._element=t}var a=t.prototype;return a.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(i.ACTIVE)||e(this._element).hasClass(i.DISABLED))){var r,a,l=e(this._element).closest(o.NAV_LIST_GROUP)[0],h=s.getSelectorFromElement(this._element);if(l){var c="UL"===l.nodeName?o.ACTIVE_UL:o.ACTIVE;a=e.makeArray(e(l).find(c)),a=a[a.length-1]}var u=e.Event(n.HIDE,{relatedTarget:this._element}),d=e.Event(n.SHOW,{relatedTarget:a});if(a&&e(a).trigger(u),e(this._element).trigger(d),!d.isDefaultPrevented()&&!u.isDefaultPrevented()){h&&(r=e(h)[0]),this._activate(this._element,l);var f=function(){var i=e.Event(n.HIDDEN,{relatedTarget:t._element}),s=e.Event(n.SHOWN,{relatedTarget:a});e(a).trigger(i),e(t._element).trigger(s)};r?this._activate(r,r.parentNode,f):f()}}},a.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},a._activate=function(t,n,r){var a,l=this,h=(a="UL"===n.nodeName?e(n).find(o.ACTIVE_UL):e(n).children(o.ACTIVE))[0],c=r&&s.supportsTransitionEnd()&&h&&e(h).hasClass(i.FADE),u=function(){return l._transitionComplete(t,h,c,r)};h&&c?e(h).one(s.TRANSITION_END,u).emulateTransitionEnd(150):u(),h&&e(h).removeClass(i.SHOW)},a._transitionComplete=function(t,n,r,a){if(n){e(n).removeClass(i.ACTIVE);var l=e(n.parentNode).find(o.DROPDOWN_ACTIVE_CHILD)[0];l&&e(l).removeClass(i.ACTIVE),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass(i.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),r?(s.reflow(t),e(t).addClass(i.SHOW)):e(t).removeClass(i.FADE),t.parentNode&&e(t.parentNode).hasClass(i.DROPDOWN_MENU)){var h=e(t).closest(o.DROPDOWN)[0];h&&e(h).find(o.DROPDOWN_TOGGLE).addClass(i.ACTIVE),t.setAttribute("aria-expanded",!0)}a&&a()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.tab");if(s||(s=new t(this),i.data("bs.tab",s)),"string"==typeof n){if("undefined"==typeof s[n])throw new Error('No method named "'+n+'"');s[n]()}})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(n.CLICK_DATA_API,o.DATA_TOGGLE,function(t){t.preventDefault(),a._jQueryInterface.call(e(this),"show")}),e.fn.tab=a._jQueryInterface,e.fn.tab.Constructor=a,e.fn.tab.noConflict=function(){return e.fn.tab=t,a._jQueryInterface},a}();return function(){if("undefined"==typeof e)throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=s,t.Alert=a,t.Button=l,t.Carousel=h,t.Collapse=c,t.Dropdown=u,t.Modal=d,t.Popover=_,t.Scrollspy=g,t.Tab=m,t.Tooltip=f,t}({},$,Popper); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/docs/assets/js/contact.js b/docs/assets/js/contact.js index 8c60841795..e44c8bba02 100644 --- a/docs/assets/js/contact.js +++ b/docs/assets/js/contact.js @@ -1,30 +1,31 @@ -$(function() { + + +$(function () { "use strict"; - $("#contact-form").validator(); + $('#contact-form').validator(); - $("#contact-form").on("submit", function(e) { - if (!e.isDefaultPrevented()) { - var url = "assets/php/contact.php"; + $('#contact-form').on('submit', function (e) { + if (!e.isDefaultPrevented()) { + var url = "assets/php/contact.php"; - $.ajax({ - type: "POST", - url: url, - data: $(this).serialize(), - success: function(data) { - var messageAlert = "alert-" + data.type; - var messageText = data.message; + $.ajax({ + type: "POST", + url: url, + data: $(this).serialize(), + success: function (data) + { + var messageAlert = 'alert-' + data.type; + var messageText = data.message; - var alertBox = "
" - + messageText + "
"; - if (messageAlert && messageText) { - $("#contact-form").find(".messages").html(alertBox); - $("#contact-form")[0].reset(); - } - }, - }); - return false; - } - }); + var alertBox = '
' + messageText + '
'; + if (messageAlert && messageText) { + $('#contact-form').find('.messages').html(alertBox); + $('#contact-form')[0].reset(); + } + } + }); + return false; + } + }) }); diff --git a/docs/assets/js/custom.js b/docs/assets/js/custom.js index 9c74e314a5..535ad9d369 100644 --- a/docs/assets/js/custom.js +++ b/docs/assets/js/custom.js @@ -1,143 +1,153 @@ -// Custom Scripts for Primal Template // - -jQuery(function($) { - "use strict"; - - // get the value of the bottom of the #main element by adding the offset of that element plus its height, set it as a variable - var mainbottom = $("#main").offset().top; - - // on scroll, - $(window).on("scroll", function() { - // we round here to reduce a little workload - stop = Math.round($(window).scrollTop()); - if (stop > mainbottom) { - $(".navbar").addClass("past-main"); - $(".navbar").addClass("effect-main"); - } else { - $(".navbar").removeClass("past-main"); - } - }); - - // Collapse navbar on click - - $(document).on("click.nav", ".navbar-collapse.in", function(e) { - if ($(e.target).is("a")) { - $(this).removeClass("in").addClass("collapse"); - } - }); - - /*----------------------------------- - ----------- Scroll To Top ----------- - ------------------------------------*/ - - $(window).scroll(function() { - if ($(this).scrollTop() > 1000) { - $("#back-top").fadeIn(); - } else { - $("#back-top").fadeOut(); - } - }); - // scroll body to 0px on click - $("#back-top").on("click", function() { - $("#back-top").tooltip("hide"); - $("body,html").animate({ - scrollTop: 0, - }, 1500); - return false; - }); - - /*-------- Owl Carousel ---------- */ - $(".reviews").owlCarousel({ - slideSpeed: 200, - items: 1, - singleItem: true, - autoPlay: true, - pagination: false, - }); - - /*-------- Owl Carousel ---------- */ - $(".review-cards").owlCarousel({ - slideSpeed: 200, - items: 1, - singleItem: true, - autoPlay: true, - pagination: false, - }); - - /* ------ jQuery for Easing min -- */ - - // Smooth scrolling using jQuery easing - $("a.js-scroll-trigger[href*=\"#\"]:not([href=\"#\"])").on("click", function() { - if ( - location.pathname.replace(/^\//, "") == this.pathname.replace(/^\//, "") && location.hostname == this.hostname - ) { - var target = $(this.hash); - target = target.length ? target : $("[name=" + this.hash.slice(1) + "]"); - if (target.length) { - $("html, body").animate( - { - scrollTop: (target.offset().top - 54), - }, - 1000, - "easeInOutExpo", - ); - return false; - } - } - }); - - /* --------- Wow Init ------ */ - - new WOW().init(); - - /* ------ Countdown ----- */ - - $("#countdown").countdown({ - date: "12/12/2031 12:00:00", - offset: +2, - day: "Day", - days: "Days", - }, function() { - alert("Done!"); - }); - - /*----- Preloader ----- */ - - $(window).load(function() { - setTimeout(function() { - $("#loading").fadeOut("slow", function() { - }); - }, 3000); - }); - - /*----- Subscription Form ----- */ - - $(document).ready(function() { - // jQuery Validation - $("#chimp-form").validate({ - // if valid, post data via AJAX - submitHandler: function(form) { - $.post("assets/php/subscribe.php", { email: $("#email").val() }, function(data) { - $("#response").html(data); - }); - }, - // all fields are required - rules: { - email: { - required: true, - email: true, - }, - }, - }); - }); - - // Accordion // - - function toggleChevron(e) { - $(e.target) - .prev(".panel-heading") - .find("span.glyphicon") - .toggleClass("glyphicon-chevron-down glyphicon-chevron-right"); - } - $("#accordion").on("hide.bs.collapse show.bs.collapse", toggleChevron); -}); +// Custom Scripts for Primal Template // + +jQuery(function($) { + "use strict"; + + + // get the value of the bottom of the #main element by adding the offset of that element plus its height, set it as a variable + var mainbottom = $('#main').offset().top; + + // on scroll, + $(window).on('scroll',function(){ + + // we round here to reduce a little workload + stop = Math.round($(window).scrollTop()); + if (stop > mainbottom) { + $('.navbar').addClass('past-main'); + $('.navbar').addClass('effect-main') + } else { + $('.navbar').removeClass('past-main'); + } + + }); + + + // Collapse navbar on click + + $(document).on('click.nav','.navbar-collapse.in',function(e) { + if( $(e.target).is('a') ) { + $(this).removeClass('in').addClass('collapse'); + } + }); + + /*----------------------------------- + ----------- Scroll To Top ----------- + ------------------------------------*/ + + $(window).scroll(function () { + if ($(this).scrollTop() > 1000) { + $('#back-top').fadeIn(); + } else { + $('#back-top').fadeOut(); + } + }); + // scroll body to 0px on click + $('#back-top').on('click', function () { + $('#back-top').tooltip('hide'); + $('body,html').animate({ + scrollTop: 0 + }, 1500); + return false; + }); + + + /*-------- Owl Carousel ---------- */ + $(".reviews").owlCarousel({ + + slideSpeed : 200, + items: 1, + singleItem: true, + autoPlay : true, + pagination : false + }); + + + /*-------- Owl Carousel ---------- */ + $(".review-cards").owlCarousel({ + + slideSpeed : 200, + items: 1, + singleItem: true, + autoPlay : true, + pagination : false + }); + + + /* ------ jQuery for Easing min -- */ + + // Smooth scrolling using jQuery easing + $('a.js-scroll-trigger[href*="#"]:not([href="#"])').on('click', function () { + if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { + var target = $(this.hash); + target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); + if (target.length) { + $('html, body').animate({ + scrollTop: (target.offset().top - 54) + }, 1000, "easeInOutExpo"); + return false; + } + } + }); + + + /* --------- Wow Init ------ */ + + new WOW().init(); + + + /* ------ Countdown ----- */ + + $('#countdown').countdown({ + date: '12/12/2031 12:00:00', + offset: +2, + day: 'Day', + days: 'Days' + }, function () { + alert('Done!'); + }); + + +/*----- Preloader ----- */ + + $(window).load(function() { + setTimeout(function() { + $('#loading').fadeOut('slow', function() { + }); + }, 3000); + }); + + +/*----- Subscription Form ----- */ + +$(document).ready(function() { + // jQuery Validation + $("#chimp-form").validate({ + // if valid, post data via AJAX + submitHandler: function(form) { + $.post("assets/php/subscribe.php", { email: $("#email").val() }, function(data) { + $('#response').html(data); + }); + }, + // all fields are required + rules: { + email: { + required: true, + email: true + } + } + }); +}); + +// Accordion // + +function toggleChevron(e) { + $(e.target) + .prev('.panel-heading') + .find("span.glyphicon") + .toggleClass('glyphicon-chevron-down glyphicon-chevron-right'); + } + $('#accordion').on('hide.bs.collapse show.bs.collapse', toggleChevron); + + + +}); diff --git a/docs/assets/js/jquery-2.1.1.js b/docs/assets/js/jquery-2.1.1.js index 1bc66b6109..e5ace116b6 100644 --- a/docs/assets/js/jquery-2.1.1.js +++ b/docs/assets/js/jquery-2.1.1.js @@ -1,3929 +1,4 @@ /*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a, b) { - "object" == typeof module && "object" == typeof module.exports - ? module.exports = a.document ? b(a, !0) : function(a) { - if (!a.document) throw new Error("jQuery requires a window with a document"); - return b(a); - } - : b(a); -}("undefined" != typeof window ? window : this, function(a, b) { - var c = [], - d = c.slice, - e = c.concat, - f = c.push, - g = c.indexOf, - h = {}, - i = h.toString, - j = h.hasOwnProperty, - k = {}, - l = a.document, - m = "2.1.1", - n = function(a, b) { - return new n.fn.init(a, b); - }, - o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - p = /^-ms-/, - q = /-([\da-z])/gi, - r = function(a, b) { - return b.toUpperCase(); - }; - n.fn = n.prototype = { - jquery: m, - constructor: n, - selector: "", - length: 0, - toArray: function() { - return d.call(this); - }, - get: function(a) { - return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this); - }, - pushStack: function(a) { - var b = n.merge(this.constructor(), a); - return b.prevObject = this, b.context = this.context, b; - }, - each: function(a, b) { - return n.each(this, a, b); - }, - map: function(a) { - return this.pushStack(n.map(this, function(b, c) { - return a.call(b, c, b); - })); - }, - slice: function() { - return this.pushStack(d.apply(this, arguments)); - }, - first: function() { - return this.eq(0); - }, - last: function() { - return this.eq(-1); - }, - eq: function(a) { - var b = this.length, c = +a + (0 > a ? b : 0); - return this.pushStack(c >= 0 && b > c ? [this[c]] : []); - }, - end: function() { - return this.prevObject || this.constructor(null); - }, - push: f, - sort: c.sort, - splice: c.splice, - }, - n.extend = n.fn.extend = function() { - var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1; - for ( - "boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), - "object" == typeof g || n.isFunction(g) || (g = {}), - h === i && (g = this, h--); - i > h; - h++ - ) { - if (null != (a = arguments[h])) { - for (b in a) { - c = g[b], - d = a[b], - g !== d && (j && d && (n.isPlainObject(d) || (e = n.isArray(d))) - ? (e ? (e = !1, f = c && n.isArray(c) ? c : []) : f = c && n.isPlainObject(c) ? c : {}, - g[b] = n.extend(j, f, d)) - : void 0 !== d && (g[b] = d)); - } - } - } - return g; - }, - n.extend({ - expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""), - isReady: !0, - error: function(a) { - throw new Error(a); - }, - noop: function() {}, - isFunction: function(a) { - return "function" === n.type(a); - }, - isArray: Array.isArray, - isWindow: function(a) { - return null != a && a === a.window; - }, - isNumeric: function(a) { - return !n.isArray(a) && a - parseFloat(a) >= 0; - }, - isPlainObject: function(a) { - return "object" !== n.type(a) || a.nodeType || n.isWindow(a) - ? !1 - : a.constructor && !j.call(a.constructor.prototype, "isPrototypeOf") - ? !1 - : !0; - }, - isEmptyObject: function(a) { - var b; - for (b in a) return !1; - return !0; - }, - type: function(a) { - return null == a - ? a + "" - : "object" == typeof a || "function" == typeof a - ? h[i.call(a)] || "object" - : typeof a; - }, - globalEval: function(a) { - var b, c = eval; - a = n.trim(a), - a && (1 === a.indexOf("use strict") - ? (b = l.createElement("script"), b.text = a, l.head.appendChild(b).parentNode.removeChild(b)) - : c(a)); - }, - camelCase: function(a) { - return a.replace(p, "ms-").replace(q, r); - }, - nodeName: function(a, b) { - return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase(); - }, - each: function(a, b, c) { - var d, e = 0, f = a.length, g = s(a); - if (c) { - if (g) { - for (; f > e; e++) { - if (d = b.apply(a[e], c), d === !1) break; - else for (e in a) if (d = b.apply(a[e], c), d === !1) break; - } - } - } else if (g) { - for (; f > e; e++) { - if (d = b.call(a[e], e, a[e]), d === !1) break; - else for (e in a) if (d = b.call(a[e], e, a[e]), d === !1) break; - } - } - return a; - }, - trim: function(a) { - return null == a ? "" : (a + "").replace(o, ""); - }, - makeArray: function(a, b) { - var c = b || []; - return null != a && (s(Object(a)) ? n.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c; - }, - inArray: function(a, b, c) { - return null == b ? -1 : g.call(b, a, c); - }, - merge: function(a, b) { - for (var c = +b.length, d = 0, e = a.length; c > d; d++) { - a[e++] = b[d]; - } - return a.length = e, a; - }, - grep: function(a, b, c) { - for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]); - return e; - }, - map: function(a, b, c) { - var d, f = 0, g = a.length, h = s(a), i = []; - if (h) for (; g > f; f++) d = b(a[f], f, c), null != d && i.push(d); - else for (f in a) d = b(a[f], f, c), null != d && i.push(d); - return e.apply([], i); - }, - guid: 1, - proxy: function(a, b) { - var c, e, f; - return "string" == typeof b && (c = a[b], b = a, a = c), - n.isFunction(a) - ? (e = d.call(arguments, 2), - f = function() { - return a.apply(b || this, e.concat(d.call(arguments))); - }, - f.guid = a.guid = a.guid || n.guid++, - f) - : void 0; - }, - now: Date.now, - support: k, - }), - n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, b) { - h["[object " + b + "]"] = b.toLowerCase(); - }); - function s(a) { - var b = a.length, c = n.type(a); - return "function" === c || n.isWindow(a) - ? !1 - : 1 === a.nodeType && b - ? !0 - : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a; - } - var t = function(a) { - var b, - c, - d, - e, - f, - g, - h, - i, - j, - k, - l, - m, - n, - o, - p, - q, - r, - s, - t, - u = "sizzle" + -new Date(), - v = a.document, - w = 0, - x = 0, - y = gb(), - z = gb(), - A = gb(), - B = function(a, b) { - return a === b && (l = !0), 0; - }, - C = "undefined", - D = 1 << 31, - E = {}.hasOwnProperty, - F = [], - G = F.pop, - H = F.push, - I = F.push, - J = F.slice, - K = F.indexOf || function(a) { - for (var b = 0, c = this.length; c > b; b++) if (this[b] === a) return b; - return -1; - }, - L = - "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - M = "[\\x20\\t\\r\\n\\f]", - N = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - O = N.replace("w", "w#"), - P = "\\[" + M + "*(" + N + ")(?:" + M + "*([*^$|!~]?=)" + M - + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + O + "))|)" + M + "*\\]", - Q = ":(" + N + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + P - + ")*)|.*)\\)|)", - R = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), - S = new RegExp("^" + M + "*," + M + "*"), - T = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), - U = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]", "g"), - V = new RegExp(Q), - W = new RegExp("^" + O + "$"), - X = { - ID: new RegExp("^#(" + N + ")"), - CLASS: new RegExp("^\\.(" + N + ")"), - TAG: new RegExp("^(" + N.replace("w", "w*") + ")"), - ATTR: new RegExp("^" + P), - PSEUDO: new RegExp("^" + Q), - CHILD: new RegExp( - "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M - + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", - "i", - ), - bool: new RegExp("^(?:" + L + ")$", "i"), - needsContext: new RegExp( - "^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M - + "*\\)|)(?=[^-]|$)", - "i", - ), - }, - Y = /^(?:input|select|textarea|button)$/i, - Z = /^h\d$/i, - $ = /^[^{]+\{\s*\[native \w/, - _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - ab = /[+~]/, - bb = /'|\\/g, - cb = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), - db = function(a, b, c) { - var d = "0x" + b - 65536; - return d !== d || c - ? b - : 0 > d - ? String.fromCharCode(d + 65536) - : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320); - }; - try { - I.apply(F = J.call(v.childNodes), v.childNodes), F[v.childNodes.length].nodeType; - } catch (eb) { - I = { - apply: F.length - ? function(a, b) { - H.apply(a, J.call(b)); - } - : function(a, b) { - var c = a.length, d = 0; - while (a[c++] = b[d++]); - a.length = c - 1; - }, - }; - } - function fb(a, b, d, e) { - var f, h, j, k, l, o, r, s, w, x; - if ((b ? b.ownerDocument || b : v) !== n && m(b), b = b || n, d = d || [], !a || "string" != typeof a) return d; - if (1 !== (k = b.nodeType) && 9 !== k) return []; - if (p && !e) { - if (f = _.exec(a)) { - if (j = f[1]) { - if (9 === k) { - if (h = b.getElementById(j), !h || !h.parentNode) return d; - if (h.id === j) return d.push(h), d; - } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j) { - return d.push(h), d; - } - } else { - if (f[2]) return I.apply(d, b.getElementsByTagName(a)), d; - if ((j = f[3]) && c.getElementsByClassName && b.getElementsByClassName) { - return I.apply(d, b.getElementsByClassName(j)), d; - } - } - } - if (c.qsa && (!q || !q.test(a))) { - if (s = r = u, w = b, x = 9 === k && a, 1 === k && "object" !== b.nodeName.toLowerCase()) { - o = g(a), - (r = b.getAttribute("id")) ? s = r.replace(bb, "\\$&") : b.setAttribute("id", s), - s = "[id='" + s + "'] ", - l = o.length; - while (l--) o[l] = s + qb(o[l]); - w = ab.test(a) && ob(b.parentNode) || b, x = o.join(","); - } - if (x) { - try { - return I.apply(d, w.querySelectorAll(x)), d; - } catch (y) { - } finally { - r || b.removeAttribute("id"); - } - } - } - } - return i(a.replace(R, "$1"), b, d, e); - } - function gb() { - var a = []; - function b(c, e) { - return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e; - } - return b; - } - function hb(a) { - return a[u] = !0, a; - } - function ib(a) { - var b = n.createElement("div"); - try { - return !!a(b); - } catch (c) { - return !1; - } finally { - b.parentNode && b.parentNode.removeChild(b), b = null; - } - } - function jb(a, b) { - var c = a.split("|"), e = a.length; - while (e--) d.attrHandle[c[e]] = b; - } - function kb(a, b) { - var c = b && a, d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || D) - (~a.sourceIndex || D); - if (d) return d; - if (c) while (c = c.nextSibling) if (c === b) return -1; - return a ? 1 : -1; - } - function lb(a) { - return function(b) { - var c = b.nodeName.toLowerCase(); - return "input" === c && b.type === a; - }; - } - function mb(a) { - return function(b) { - var c = b.nodeName.toLowerCase(); - return ("input" === c || "button" === c) && b.type === a; - }; - } - function nb(a) { - return hb(function(b) { - return b = +b, - hb(function(c, d) { - var e, f = a([], c.length, b), g = f.length; - while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e])); - }); - }); - } - function ob(a) { - return a && typeof a.getElementsByTagName !== C && a; - } - c = fb.support = {}, - f = fb.isXML = function(a) { - var b = a && (a.ownerDocument || a).documentElement; - return b ? "HTML" !== b.nodeName : !1; - }, - m = fb.setDocument = function(a) { - var b, e = a ? a.ownerDocument || a : v, g = e.defaultView; - return e !== n && 9 === e.nodeType && e.documentElement - ? (n = e, - o = e.documentElement, - p = !f(e), - g && g !== g.top && (g.addEventListener - ? g.addEventListener("unload", function() { - m(); - }, !1) - : g.attachEvent && g.attachEvent("onunload", function() { - m(); - })), - c.attributes = ib(function(a) { - return a.className = "i", !a.getAttribute("className"); - }), - c.getElementsByTagName = ib(function(a) { - return a.appendChild(e.createComment("")), !a.getElementsByTagName("*").length; - }), - c.getElementsByClassName = $.test(e.getElementsByClassName) && ib(function(a) { - return a.innerHTML = "
", - a.firstChild.className = "i", - 2 === a.getElementsByClassName("i").length; - }), - c.getById = ib(function(a) { - return o.appendChild(a).id = u, !e.getElementsByName || !e.getElementsByName(u).length; - }), - c.getById - ? (d.find.ID = function(a, b) { - if (typeof b.getElementById !== C && p) { - var c = b.getElementById(a); - return c && c.parentNode ? [c] : []; - } - }, - d.filter.ID = function(a) { - var b = a.replace(cb, db); - return function(a) { - return a.getAttribute("id") === b; - }; - }) - : (delete d.find.ID, - d.filter.ID = function(a) { - var b = a.replace(cb, db); - return function(a) { - var c = typeof a.getAttributeNode !== C && a.getAttributeNode("id"); - return c && c.value === b; - }; - }), - d.find.TAG = c.getElementsByTagName - ? function(a, b) { - return typeof b.getElementsByTagName !== C ? b.getElementsByTagName(a) : void 0; - } - : function(a, b) { - var c, d = [], e = 0, f = b.getElementsByTagName(a); - if ("*" === a) { - while (c = f[e++]) 1 === c.nodeType && d.push(c); - return d; - } - return f; - }, - d.find.CLASS = c.getElementsByClassName && function(a, b) { - return typeof b.getElementsByClassName !== C && p ? b.getElementsByClassName(a) : void 0; - }, - r = [], - q = [], - (c.qsa = $.test(e.querySelectorAll)) && (ib(function(a) { - a.innerHTML = "", - a.querySelectorAll("[msallowclip^='']").length && q.push("[*^$]=" + M + "*(?:''|\"\")"), - a.querySelectorAll("[selected]").length || q.push("\\[" + M + "*(?:value|" + L + ")"), - a.querySelectorAll(":checked").length || q.push(":checked"); - }), - ib(function(a) { - var b = e.createElement("input"); - b.setAttribute("type", "hidden"), - a.appendChild(b).setAttribute("name", "D"), - a.querySelectorAll("[name=d]").length && q.push("name" + M + "*[*^$|!~]?="), - a.querySelectorAll(":enabled").length || q.push(":enabled", ":disabled"), - a.querySelectorAll("*,:x"), - q.push(",.*:"); - })), - (c.matchesSelector = $.test( - s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector - || o.msMatchesSelector, - )) && ib(function(a) { - c.disconnectedMatch = s.call(a, "div"), s.call(a, "[s!='']:x"), r.push("!=", Q); - }), - q = q.length && new RegExp(q.join("|")), - r = r.length && new RegExp(r.join("|")), - b = $.test(o.compareDocumentPosition), - t = b || $.test(o.contains) - ? function(a, b) { - var c = 9 === a.nodeType ? a.documentElement : a, d = b && b.parentNode; - return a === d - || !(!d || 1 !== d.nodeType - || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))); - } - : function(a, b) { - if (b) while (b = b.parentNode) if (b === a) return !0; - return !1; - }, - B = b - ? function(a, b) { - if (a === b) return l = !0, 0; - var d = !a.compareDocumentPosition - !b.compareDocumentPosition; - return d - ? d - : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, - 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d - ? a === e || a.ownerDocument === v && t(v, a) - ? -1 - : b === e || b.ownerDocument === v && t(v, b) - ? 1 - : k - ? K.call(k, a) - K.call(k, b) - : 0 - : 4 & d - ? -1 - : 1); - } - : function(a, b) { - if (a === b) return l = !0, 0; - var c, d = 0, f = a.parentNode, g = b.parentNode, h = [a], i = [b]; - if (!f || !g) { - return a === e - ? -1 - : b === e - ? 1 - : f - ? -1 - : g - ? 1 - : k - ? K.call(k, a) - K.call(k, b) - : 0; - } - if (f === g) return kb(a, b); - c = a; - while (c = c.parentNode) h.unshift(c); - c = b; - while (c = c.parentNode) i.unshift(c); - while (h[d] === i[d]) d++; - return d ? kb(h[d], i[d]) : h[d] === v ? -1 : i[d] === v ? 1 : 0; - }, - e) - : n; - }, - fb.matches = function(a, b) { - return fb(a, null, null, b); - }, - fb.matchesSelector = function(a, b) { - if ( - (a.ownerDocument || a) !== n && m(a), - b = b.replace(U, "='$1']"), - !(!c.matchesSelector || !p || r && r.test(b) || q && q.test(b)) - ) { - try { - var d = s.call(a, b); - if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d; - } catch (e) {} - } - return fb(b, n, null, [a]).length > 0; - }, - fb.contains = function(a, b) { - return (a.ownerDocument || a) !== n && m(a), t(a, b); - }, - fb.attr = function(a, b) { - (a.ownerDocument || a) !== n && m(a); - var e = d.attrHandle[b.toLowerCase()], f = e && E.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0; - return void 0 !== f - ? f - : c.attributes || !p - ? a.getAttribute(b) - : (f = a.getAttributeNode(b)) && f.specified - ? f.value - : null; - }, - fb.error = function(a) { - throw new Error("Syntax error, unrecognized expression: " + a); - }, - fb.uniqueSort = function(a) { - var b, d = [], e = 0, f = 0; - if (l = !c.detectDuplicates, k = !c.sortStable && a.slice(0), a.sort(B), l) { - while (b = a[f++]) b === a[f] && (e = d.push(f)); - while (e--) a.splice(d[e], 1); - } - return k = null, a; - }, - e = fb.getText = function(a) { - var b, c = "", d = 0, f = a.nodeType; - if (f) { - if (1 === f || 9 === f || 11 === f) { - if ("string" == typeof a.textContent) return a.textContent; - for (a = a.firstChild; a; a = a.nextSibling) c += e(a); - } else if (3 === f || 4 === f) return a.nodeValue; - } else while (b = a[d++]) c += e(b); - return c; - }, - d = fb.selectors = { - cacheLength: 50, - createPseudo: hb, - match: X, - attrHandle: {}, - find: {}, - relative: { - ">": { dir: "parentNode", first: !0 }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: !0 }, - "~": { dir: "previousSibling" }, - }, - preFilter: { - ATTR: function(a) { - return a[1] = a[1].replace(cb, db), - a[3] = (a[3] || a[4] || a[5] || "").replace(cb, db), - "~=" === a[2] && (a[3] = " " + a[3] + " "), - a.slice(0, 4); - }, - CHILD: function(a) { - return a[1] = a[1].toLowerCase(), - "nth" === a[1].slice(0, 3) - ? (a[3] || fb.error(a[0]), - a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), - a[5] = +(a[7] + a[8] || "odd" === a[3])) - : a[3] && fb.error(a[0]), - a; - }, - PSEUDO: function(a) { - var b, c = !a[6] && a[2]; - return X.CHILD.test(a[0]) - ? null - : (a[3] - ? a[2] = a[4] || a[5] || "" - : c && V.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) - && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), - a.slice(0, 3)); - }, - }, - filter: { - TAG: function(a) { - var b = a.replace(cb, db).toLowerCase(); - return "*" === a - ? function() { - return !0; - } - : function(a) { - return a.nodeName && a.nodeName.toLowerCase() === b; - }; - }, - CLASS: function(a) { - var b = y[a + " "]; - return b || (b = new RegExp("(^|" + M + ")" + a + "(" + M + "|$)")) && y(a, function(a) { - return b.test( - "string" == typeof a.className && a.className - || typeof a.getAttribute !== C && a.getAttribute("class") || "", - ); - }); - }, - ATTR: function(a, b, c) { - return function(d) { - var e = fb.attr(d, a); - return null == e - ? "!=" === b - : b - ? (e += "", - "=" === b - ? e === c - : "!=" === b - ? e !== c - : "^=" === b - ? c && 0 === e.indexOf(c) - : "*=" === b - ? c && e.indexOf(c) > -1 - : "$=" === b - ? c && e.slice(-c.length) === c - : "~=" === b - ? (" " + e + " ").indexOf(c) > -1 - : "|=" === b - ? e === c || e.slice(0, c.length + 1) === c + "-" - : !1) - : !0; - }; - }, - CHILD: function(a, b, c, d, e) { - var f = "nth" !== a.slice(0, 3), g = "last" !== a.slice(-4), h = "of-type" === b; - return 1 === d && 0 === e - ? function(a) { - return !!a.parentNode; - } - : function(b, c, i) { - var j, - k, - l, - m, - n, - o, - p = f !== g ? "nextSibling" : "previousSibling", - q = b.parentNode, - r = h && b.nodeName.toLowerCase(), - s = !i && !h; - if (q) { - if (f) { - while (p) { - l = b; - while (l = l[p]) if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1; - o = p = "only" === a && !o && "nextSibling"; - } - return !0; - } - if (o = [g ? q.firstChild : q.lastChild], g && s) { - k = q[u] || (q[u] = {}), - j = k[a] || [], - n = j[0] === w && j[1], - m = j[0] === w && j[2], - l = n && q.childNodes[n]; - while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) { - if (1 === l.nodeType && ++m && l === b) { - k[a] = [w, n, m]; - break; - } - } - } else if (s && (j = (b[u] || (b[u] = {}))[a]) && j[0] === w) m = j[1]; - else {while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) { - if ( - (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m - && (s && ((l[u] || (l[u] = {}))[a] = [w, m]), l === b) - ) break; - }} - return m -= e, m === d || m % d === 0 && m / d >= 0; - } - }; - }, - PSEUDO: function(a, b) { - var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || fb.error("unsupported pseudo: " + a); - return e[u] - ? e(b) - : e.length > 1 - ? (c = [a, a, "", b], - d.setFilters.hasOwnProperty(a.toLowerCase()) - ? hb(function(a, c) { - var d, f = e(a, b), g = f.length; - while (g--) d = K.call(a, f[g]), a[d] = !(c[d] = f[g]); - }) - : function(a) { - return e(a, 0, c); - }) - : e; - }, - }, - pseudos: { - not: hb(function(a) { - var b = [], c = [], d = h(a.replace(R, "$1")); - return d[u] - ? hb(function(a, b, c, e) { - var f, g = d(a, null, e, []), h = a.length; - while (h--) (f = g[h]) && (a[h] = !(b[h] = f)); - }) - : function(a, e, f) { - return b[0] = a, d(b, null, f, c), !c.pop(); - }; - }), - has: hb(function(a) { - return function(b) { - return fb(a, b).length > 0; - }; - }), - contains: hb(function(a) { - return function(b) { - return (b.textContent || b.innerText || e(b)).indexOf(a) > -1; - }; - }), - lang: hb(function(a) { - return W.test(a || "") || fb.error("unsupported lang: " + a), - a = a.replace(cb, db).toLowerCase(), - function(b) { - var c; - do if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) { - return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); - } while ((b = b.parentNode) && 1 === b.nodeType); - return !1; - }; - }), - target: function(b) { - var c = a.location && a.location.hash; - return c && c.slice(1) === b.id; - }, - root: function(a) { - return a === o; - }, - focus: function(a) { - return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex); - }, - enabled: function(a) { - return a.disabled === !1; - }, - disabled: function(a) { - return a.disabled === !0; - }, - checked: function(a) { - var b = a.nodeName.toLowerCase(); - return "input" === b && !!a.checked || "option" === b && !!a.selected; - }, - selected: function(a) { - return a.parentNode && a.parentNode.selectedIndex, a.selected === !0; - }, - empty: function(a) { - for (a = a.firstChild; a; a = a.nextSibling) if (a.nodeType < 6) return !1; - return !0; - }, - parent: function(a) { - return !d.pseudos.empty(a); - }, - header: function(a) { - return Z.test(a.nodeName); - }, - input: function(a) { - return Y.test(a.nodeName); - }, - button: function(a) { - var b = a.nodeName.toLowerCase(); - return "input" === b && "button" === a.type || "button" === b; - }, - text: function(a) { - var b; - return "input" === a.nodeName.toLowerCase() && "text" === a.type - && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()); - }, - first: nb(function() { - return [0]; - }), - last: nb(function(a, b) { - return [b - 1]; - }), - eq: nb(function(a, b, c) { - return [0 > c ? c + b : c]; - }), - even: nb(function(a, b) { - for (var c = 0; b > c; c += 2) a.push(c); - return a; - }), - odd: nb(function(a, b) { - for (var c = 1; b > c; c += 2) a.push(c); - return a; - }), - lt: nb(function(a, b, c) { - for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d); - return a; - }), - gt: nb(function(a, b, c) { - for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d); - return a; - }), - }, - }, - d.pseudos.nth = d.pseudos.eq; - for (b in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) { - d.pseudos[b] = lb(b); - } - for (b in { submit: !0, reset: !0 }) d.pseudos[b] = mb(b); - function pb() {} - pb.prototype = d.filters = d.pseudos, - d.setFilters = new pb(), - g = fb.tokenize = function(a, b) { - var c, e, f, g, h, i, j, k = z[a + " "]; - if (k) return b ? 0 : k.slice(0); - h = a, i = [], j = d.preFilter; - while (h) { - (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), - c = !1, - (e = T.exec(h)) && (c = e.shift(), f.push({ value: c, type: e[0].replace(R, " ") }), h = h.slice(c.length)); - for (g in d.filter) { - !(e = X[g].exec(h)) || j[g] && !(e = j[g](e)) - || (c = e.shift(), f.push({ value: c, type: g, matches: e }), h = h.slice(c.length)); - } - if (!c) break; - } - return b ? h.length : h ? fb.error(a) : z(a, i).slice(0); - }; - function qb(a) { - for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value; - return d; - } - function rb(a, b, c) { - var d = b.dir, e = c && "parentNode" === d, f = x++; - return b.first - ? function(b, c, f) { - while (b = b[d]) if (1 === b.nodeType || e) return a(b, c, f); - } - : function(b, c, g) { - var h, i, j = [w, f]; - if (g) { - while (b = b[d]) { - if ((1 === b.nodeType || e) && a(b, c, g)) return !0; - else {while (b = b[d]) { - if (1 === b.nodeType || e) { - if (i = b[u] || (b[u] = {}), (h = i[d]) && h[0] === w && h[1] === f) return j[2] = h[2]; - if (i[d] = j, j[2] = a(b, c, g)) return !0; - } - }} - } - } - }; - } - function sb(a) { - return a.length > 1 - ? function(b, c, d) { - var e = a.length; - while (e--) if (!a[e](b, c, d)) return !1; - return !0; - } - : a[0]; - } - function tb(a, b, c) { - for (var d = 0, e = b.length; e > d; d++) fb(a, b[d], c); - return c; - } - function ub(a, b, c, d, e) { - for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++) { - (f = a[h]) && (!c || c(f, d, e)) - && (g.push(f), j && b.push(h)); - } - return g; - } - function vb(a, b, c, d, e, f) { - return d && !d[u] && (d = vb(d)), - e && !e[u] && (e = vb(e, f)), - hb(function(f, g, h, i) { - var j, - k, - l, - m = [], - n = [], - o = g.length, - p = f || tb(b || "*", h.nodeType ? [h] : h, []), - q = !a || !f && b ? p : ub(p, m, a, h, i), - r = c ? e || (f ? a : o || d) ? [] : g : q; - if (c && c(q, r, h, i), d) { - j = ub(r, n), d(j, [], h, i), k = j.length; - while (k--) (l = j[k]) && (r[n[k]] = !(q[n[k]] = l)); - } - if (f) { - if (e || a) { - if (e) { - j = [], k = r.length; - while (k--) (l = r[k]) && j.push(q[k] = l); - e(null, r = [], j, i); - } - k = r.length; - while (k--) (l = r[k]) && (j = e ? K.call(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l)); - } - } else r = ub(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : I.apply(g, r); - }); - } - function wb(a) { - for ( - var b, - c, - e, - f = a.length, - g = d.relative[a[0].type], - h = g || d.relative[" "], - i = g ? 1 : 0, - k = rb( - function(a) { - return a === b; - }, - h, - !0, - ), - l = rb( - function(a) { - return K.call(b, a) > -1; - }, - h, - !0, - ), - m = [function(a, c, d) { - return !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d)); - }]; - f > i; - i++ - ) { - if (c = d.relative[a[i].type]) m = [rb(sb(m), c)]; - else { - if (c = d.filter[a[i].type].apply(null, a[i].matches), c[u]) { - for (e = ++i; f > e; e++) if (d.relative[a[e].type]) break; - return vb( - i > 1 && sb(m), - i > 1 && qb(a.slice(0, i - 1).concat({ value: " " === a[i - 2].type ? "*" : "" })).replace(R, "$1"), - c, - e > i && wb(a.slice(i, e)), - f > e && wb(a = a.slice(e)), - f > e && qb(a), - ); - } - m.push(c); - } - } - return sb(m); - } - function xb(a, b) { - var c = b.length > 0, - e = a.length > 0, - f = function(f, g, h, i, k) { - var l, - m, - o, - p = 0, - q = "0", - r = f && [], - s = [], - t = j, - u = f || e && d.find.TAG("*", k), - v = w += null == t ? 1 : Math.random() || .1, - x = u.length; - for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) { - if (e && l) { - m = 0; - while (o = a[m++]) { - if (o(l, g, h)) { - i.push(l); - break; - } - } - k && (w = v); - } - c && ((l = !o && l) && p--, f && r.push(l)); - } - if (p += q, c && q !== p) { - m = 0; - while (o = b[m++]) o(r, s, g, h); - if (f) { - if (p > 0) while (q--) r[q] || s[q] || (s[q] = G.call(i)); - s = ub(s); - } - I.apply(i, s), k && !f && s.length > 0 && p + b.length > 1 && fb.uniqueSort(i); - } - return k && (w = v, j = t), r; - }; - return c ? hb(f) : f; - } - return h = fb.compile = function(a, b) { - var c, d = [], e = [], f = A[a + " "]; - if (!f) { - b || (b = g(a)), c = b.length; - while (c--) f = wb(b[c]), f[u] ? d.push(f) : e.push(f); - f = A(a, xb(e, d)), f.selector = a; - } - return f; - }, - i = fb.select = function(a, b, e, f) { - var i, j, k, l, m, n = "function" == typeof a && a, o = !f && g(a = n.selector || a); - if (e = e || [], 1 === o.length) { - if ( - j = o[0] = o[0].slice(0), - j.length > 2 && "ID" === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type] - ) { - if (b = (d.find.ID(k.matches[0].replace(cb, db), b) || [])[0], !b) return e; - n && (b = b.parentNode), a = a.slice(j.shift().value.length); - } - i = X.needsContext.test(a) ? 0 : j.length; - while (i--) { - if (k = j[i], d.relative[l = k.type]) break; - if ((m = d.find[l]) && (f = m(k.matches[0].replace(cb, db), ab.test(j[0].type) && ob(b.parentNode) || b))) { - if (j.splice(i, 1), a = f.length && qb(j), !a) return I.apply(e, f), e; - break; - } - } - } - return (n || h(a, o))(f, b, !p, e, ab.test(a) && ob(b.parentNode) || b), e; - }, - c.sortStable = u.split("").sort(B).join("") === u, - c.detectDuplicates = !!l, - m(), - c.sortDetached = ib(function(a) { - return 1 & a.compareDocumentPosition(n.createElement("div")); - }), - ib(function(a) { - return a.innerHTML = "", "#" === a.firstChild.getAttribute("href"); - }) || jb("type|href|height|width", function(a, b, c) { - return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2); - }), - c.attributes && ib(function(a) { - return a.innerHTML = "", - a.firstChild.setAttribute("value", ""), - "" === a.firstChild.getAttribute("value"); - }) || jb("value", function(a, b, c) { - return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue; - }), - ib(function(a) { - return null == a.getAttribute("disabled"); - }) || jb(L, function(a, b, c) { - var d; - return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null; - }), - fb; - }(a); - n.find = t, - n.expr = t.selectors, - n.expr[":"] = n.expr.pseudos, - n.unique = t.uniqueSort, - n.text = t.getText, - n.isXMLDoc = t.isXML, - n.contains = t.contains; - var u = n.expr.match.needsContext, v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, w = /^.[^:#\[\.,]*$/; - function x(a, b, c) { - if (n.isFunction(b)) { - return n.grep(a, function(a, d) { - return !!b.call(a, d, a) !== c; - }); - } - if (b.nodeType) { - return n.grep(a, function(a) { - return a === b !== c; - }); - } - if ("string" == typeof b) { - if (w.test(b)) return n.filter(b, a, c); - b = n.filter(b, a); - } - return n.grep(a, function(a) { - return g.call(b, a) >= 0 !== c; - }); - } - n.filter = function(a, b, c) { - var d = b[0]; - return c && (a = ":not(" + a + ")"), - 1 === b.length && 1 === d.nodeType - ? n.find.matchesSelector(d, a) ? [d] : [] - : n.find.matches( - a, - n.grep(b, function(a) { - return 1 === a.nodeType; - }), - ); - }, - n.fn.extend({ - find: function(a) { - var b, c = this.length, d = [], e = this; - if ("string" != typeof a) { - return this.pushStack( - n(a).filter(function() { - for (b = 0; c > b; b++) if (n.contains(e[b], this)) return !0; - }), - ); - } - for (b = 0; c > b; b++) n.find(a, e[b], d); - return d = this.pushStack(c > 1 ? n.unique(d) : d), d.selector = this.selector ? this.selector + " " + a : a, d; - }, - filter: function(a) { - return this.pushStack(x(this, a || [], !1)); - }, - not: function(a) { - return this.pushStack(x(this, a || [], !0)); - }, - is: function(a) { - return !!x(this, "string" == typeof a && u.test(a) ? n(a) : a || [], !1).length; - }, - }); - var y, - z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - A = n.fn.init = function(a, b) { - var c, d; - if (!a) return this; - if ("string" == typeof a) { - if ( - c = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : z.exec(a), !c || !c[1] && b - ) return !b || b.jquery ? (b || y).find(a) : this.constructor(b).find(a); - if (c[1]) { - if ( - b = b instanceof n ? b[0] : b, - n.merge(this, n.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : l, !0)), - v.test(c[1]) && n.isPlainObject(b) - ) for (c in b) n.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); - return this; - } - return d = l.getElementById(c[2]), - d && d.parentNode && (this.length = 1, this[0] = d), - this.context = l, - this.selector = a, - this; - } - return a.nodeType - ? (this.context = this[0] = a, this.length = 1, this) - : n.isFunction(a) - ? "undefined" != typeof y.ready ? y.ready(a) : a(n) - : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), n.makeArray(a, this)); - }; - A.prototype = n.fn, y = n(l); - var B = /^(?:parents|prev(?:Until|All))/, C = { children: !0, contents: !0, next: !0, prev: !0 }; - n.extend({ - dir: function(a, b, c) { - var d = [], e = void 0 !== c; - while ((a = a[b]) && 9 !== a.nodeType) { - if (1 === a.nodeType) { - if (e && n(a).is(c)) break; - d.push(a); - } - } - return d; - }, - sibling: function(a, b) { - for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a); - return c; - }, - }), - n.fn.extend({ - has: function(a) { - var b = n(a, this), c = b.length; - return this.filter(function() { - for (var a = 0; c > a; a++) if (n.contains(this, b[a])) return !0; - }); - }, - closest: function(a, b) { - for ( - var c, d = 0, e = this.length, f = [], g = u.test(a) || "string" != typeof a ? n(a, b || this.context) : 0; - e > d; - d++ - ) { - for (c = this[d]; c && c !== b; c = c.parentNode) { - if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && n.find.matchesSelector(c, a))) { - f.push(c); - break; - } - } - } - return this.pushStack(f.length > 1 ? n.unique(f) : f); - }, - index: function(a) { - return a - ? "string" == typeof a ? g.call(n(a), this[0]) : g.call(this, a.jquery ? a[0] : a) - : this[0] && this[0].parentNode - ? this.first().prevAll().length - : -1; - }, - add: function(a, b) { - return this.pushStack(n.unique(n.merge(this.get(), n(a, b)))); - }, - addBack: function(a) { - return this.add(null == a ? this.prevObject : this.prevObject.filter(a)); - }, - }); - function D(a, b) { - while ((a = a[b]) && 1 !== a.nodeType); - return a; - } - n.each({ - parent: function(a) { - var b = a.parentNode; - return b && 11 !== b.nodeType ? b : null; - }, - parents: function(a) { - return n.dir(a, "parentNode"); - }, - parentsUntil: function(a, b, c) { - return n.dir(a, "parentNode", c); - }, - next: function(a) { - return D(a, "nextSibling"); - }, - prev: function(a) { - return D(a, "previousSibling"); - }, - nextAll: function(a) { - return n.dir(a, "nextSibling"); - }, - prevAll: function(a) { - return n.dir(a, "previousSibling"); - }, - nextUntil: function(a, b, c) { - return n.dir(a, "nextSibling", c); - }, - prevUntil: function(a, b, c) { - return n.dir(a, "previousSibling", c); - }, - siblings: function(a) { - return n.sibling((a.parentNode || {}).firstChild, a); - }, - children: function(a) { - return n.sibling(a.firstChild); - }, - contents: function(a) { - return a.contentDocument || n.merge([], a.childNodes); - }, - }, function(a, b) { - n.fn[a] = function(c, d) { - var e = n.map(this, b, c); - return "Until" !== a.slice(-5) && (d = c), - d && "string" == typeof d && (e = n.filter(d, e)), - this.length > 1 && (C[a] || n.unique(e), B.test(a) && e.reverse()), - this.pushStack(e); - }; - }); - var E = /\S+/g, F = {}; - function G(a) { - var b = F[a] = {}; - return n.each(a.match(E) || [], function(a, c) { - b[c] = !0; - }), - b; - } - n.Callbacks = function(a) { - a = "string" == typeof a ? F[a] || G(a) : n.extend({}, a); - var b, - c, - d, - e, - f, - g, - h = [], - i = !a.once && [], - j = function(l) { - for ( - b = a.memory && l, c = !0, g = e || 0, e = 0, f = h.length, d = !0; - h && f > g; - g++ - ) { - if (h[g].apply(l[0], l[1]) === !1 && a.stopOnFalse) { - b = !1; - break; - } - } - d = !1, h && (i ? i.length && j(i.shift()) : b ? h = [] : k.disable()); - }, - k = { - add: function() { - if (h) { - var c = h.length; - !function g(b) { - n.each(b, function(b, c) { - var d = n.type(c); - "function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && g(c); - }); - }(arguments), d ? f = h.length : b && (e = c, j(b)); - } - return this; - }, - remove: function() { - return h && n.each(arguments, function(a, b) { - var c; - while ((c = n.inArray(b, h, c)) > -1) h.splice(c, 1), d && (f >= c && f--, g >= c && g--); - }), - this; - }, - has: function(a) { - return a ? n.inArray(a, h) > -1 : !(!h || !h.length); - }, - empty: function() { - return h = [], f = 0, this; - }, - disable: function() { - return h = i = b = void 0, this; - }, - disabled: function() { - return !h; - }, - lock: function() { - return i = void 0, b || k.disable(), this; - }, - locked: function() { - return !i; - }, - fireWith: function(a, b) { - return !h || c && !i || (b = b || [], b = [a, b.slice ? b.slice() : b], d ? i.push(b) : j(b)), this; - }, - fire: function() { - return k.fireWith(this, arguments), this; - }, - fired: function() { - return !!c; - }, - }; - return k; - }, - n.extend({ - Deferred: function(a) { - var b = [["resolve", "done", n.Callbacks("once memory"), "resolved"], [ - "reject", - "fail", - n.Callbacks("once memory"), - "rejected", - ], ["notify", "progress", n.Callbacks("memory")]], - c = "pending", - d = { - state: function() { - return c; - }, - always: function() { - return e.done(arguments).fail(arguments), this; - }, - then: function() { - var a = arguments; - return n.Deferred(function(c) { - n.each(b, function(b, f) { - var g = n.isFunction(a[b]) && a[b]; - e[f[1]](function() { - var a = g && g.apply(this, arguments); - a && n.isFunction(a.promise) - ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) - : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments); - }); - }), a = null; - }).promise(); - }, - promise: function(a) { - return null != a ? n.extend(a, d) : d; - }, - }, - e = {}; - return d.pipe = d.then, - n.each(b, function(a, f) { - var g = f[2], h = f[3]; - d[f[1]] = g.add, - h && g.add( - function() { - c = h; - }, - b[1 ^ a][2].disable, - b[2][2].lock, - ), - e[f[0]] = function() { - return e[f[0] + "With"](this === e ? d : this, arguments), this; - }, - e[f[0] + "With"] = g.fireWith; - }), - d.promise(e), - a && a.call(e, e), - e; - }, - when: function(a) { - var b = 0, - c = d.call(arguments), - e = c.length, - f = 1 !== e || a && n.isFunction(a.promise) ? e : 0, - g = 1 === f ? a : n.Deferred(), - h = function(a, b, c) { - return function(e) { - b[a] = this, - c[a] = arguments.length > 1 ? d.call(arguments) : e, - c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c); - }; - }, - i, - j, - k; - if (e > 1) { - for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) { - c[b] && n.isFunction(c[b].promise) - ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) - : --f; - } - } - return f || g.resolveWith(k, c), g.promise(); - }, - }); - var H; - n.fn.ready = function(a) { - return n.ready.promise().done(a), this; - }, - n.extend({ - isReady: !1, - readyWait: 1, - holdReady: function(a) { - a ? n.readyWait++ : n.ready(!0); - }, - ready: function(a) { - (a === !0 ? --n.readyWait : n.isReady) - || (n.isReady = !0, - a !== !0 && --n.readyWait > 0 - || (H.resolveWith(l, [n]), n.fn.triggerHandler && (n(l).triggerHandler("ready"), n(l).off("ready")))); - }, - }); - function I() { - l.removeEventListener("DOMContentLoaded", I, !1), a.removeEventListener("load", I, !1), n.ready(); - } - n.ready.promise = function(b) { - return H - || (H = n.Deferred(), - "complete" === l.readyState - ? setTimeout(n.ready) - : (l.addEventListener("DOMContentLoaded", I, !1), a.addEventListener("load", I, !1))), - H.promise(b); - }, n.ready.promise(); - var J = n.access = function(a, b, c, d, e, f, g) { - var h = 0, i = a.length, j = null == c; - if ("object" === n.type(c)) { - e = !0; - for (h in c) n.access(a, b, h, c[h], !0, f, g); - } else if ( - void 0 !== d - && (e = !0, - n.isFunction(d) || (g = !0), - j && (g ? (b.call(a, d), b = null) : (j = b, - b = function(a, b, c) { - return j.call(n(a), c); - })), - b) - ) for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); - return e ? a : j ? b.call(a) : i ? b(a[0], c) : f; - }; - n.acceptData = function(a) { - return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType; - }; - function K() { - Object.defineProperty(this.cache = {}, 0, { - get: function() { - return {}; - }, - }), this.expando = n.expando + Math.random(); - } - K.uid = 1, - K.accepts = n.acceptData, - K.prototype = { - key: function(a) { - if (!K.accepts(a)) return 0; - var b = {}, c = a[this.expando]; - if (!c) { - c = K.uid++; - try { - b[this.expando] = { value: c }, Object.defineProperties(a, b); - } catch (d) { - b[this.expando] = c, n.extend(a, b); - } - } - return this.cache[c] || (this.cache[c] = {}), c; - }, - set: function(a, b, c) { - var d, e = this.key(a), f = this.cache[e]; - if ("string" == typeof b) f[b] = c; - else if (n.isEmptyObject(f)) n.extend(this.cache[e], b); - else for (d in b) f[d] = b[d]; - return f; - }, - get: function(a, b) { - var c = this.cache[this.key(a)]; - return void 0 === b ? c : c[b]; - }, - access: function(a, b, c) { - var d; - return void 0 === b || b && "string" == typeof b && void 0 === c - ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, n.camelCase(b))) - : (this.set(a, b, c), void 0 !== c ? c : b); - }, - remove: function(a, b) { - var c, d, e, f = this.key(a), g = this.cache[f]; - if (void 0 === b) this.cache[f] = {}; - else { - n.isArray(b) - ? d = b.concat(b.map(n.camelCase)) - : (e = n.camelCase(b), b in g ? d = [b, e] : (d = e, d = d in g ? [d] : d.match(E) || [])), c = d.length; - while (c--) delete g[d[c]]; - } - }, - hasData: function(a) { - return !n.isEmptyObject(this.cache[a[this.expando]] || {}); - }, - discard: function(a) { - a[this.expando] && delete this.cache[a[this.expando]]; - }, - }; - var L = new K(), M = new K(), N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, O = /([A-Z])/g; - function P(a, b, c) { - var d; - if (void 0 === c && 1 === a.nodeType) { - if (d = "data-" + b.replace(O, "-$1").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) { - try { - c = "true" === c - ? !0 - : "false" === c - ? !1 - : "null" === c - ? null - : +c + "" === c - ? +c - : N.test(c) - ? n.parseJSON(c) - : c; - } catch (e) {} - M.set(a, b, c); - } else c = void 0; - } - return c; - } - n.extend({ - hasData: function(a) { - return M.hasData(a) || L.hasData(a); - }, - data: function(a, b, c) { - return M.access(a, b, c); - }, - removeData: function(a, b) { - M.remove(a, b); - }, - _data: function(a, b, c) { - return L.access(a, b, c); - }, - _removeData: function(a, b) { - L.remove(a, b); - }, - }), - n.fn.extend({ - data: function(a, b) { - var c, d, e, f = this[0], g = f && f.attributes; - if (void 0 === a) { - if (this.length && (e = M.get(f), 1 === f.nodeType && !L.get(f, "hasDataAttrs"))) { - c = g.length; - while (c--) { - g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = n.camelCase(d.slice(5)), P(f, d, e[d]))); - } - L.set(f, "hasDataAttrs", !0); - } - return e; - } - return "object" == typeof a - ? this.each(function() { - M.set(this, a); - }) - : J( - this, - function(b) { - var c, d = n.camelCase(a); - if (f && void 0 === b) { - if (c = M.get(f, a), void 0 !== c) return c; - if (c = M.get(f, d), void 0 !== c) return c; - if (c = P(f, d, void 0), void 0 !== c) return c; - } else {this.each(function() { - var c = M.get(this, d); - M.set(this, d, b), -1 !== a.indexOf("-") && void 0 !== c && M.set(this, a, b); - });} - }, - null, - b, - arguments.length > 1, - null, - !0, - ); - }, - removeData: function(a) { - return this.each(function() { - M.remove(this, a); - }); - }, - }), - n.extend({ - queue: function(a, b, c) { - var d; - return a - ? (b = (b || "fx") + "queue", - d = L.get(a, b), - c && (!d || n.isArray(c) ? d = L.access(a, b, n.makeArray(c)) : d.push(c)), - d || []) - : void 0; - }, - dequeue: function(a, b) { - b = b || "fx"; - var c = n.queue(a, b), - d = c.length, - e = c.shift(), - f = n._queueHooks(a, b), - g = function() { - n.dequeue(a, b); - }; - "inprogress" === e && (e = c.shift(), d--), - e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), - !d && f && f.empty.fire(); - }, - _queueHooks: function(a, b) { - var c = b + "queueHooks"; - return L.get(a, c) || L.access(a, c, { - empty: n.Callbacks("once memory").add(function() { - L.remove(a, [b + "queue", c]); - }), - }); - }, - }), - n.fn.extend({ - queue: function(a, b) { - var c = 2; - return "string" != typeof a && (b = a, a = "fx", c--), - arguments.length < c ? n.queue(this[0], a) : void 0 === b ? this : this.each(function() { - var c = n.queue(this, a, b); - n._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && n.dequeue(this, a); - }); - }, - dequeue: function(a) { - return this.each(function() { - n.dequeue(this, a); - }); - }, - clearQueue: function(a) { - return this.queue(a || "fx", []); - }, - promise: function(a, b) { - var c, - d = 1, - e = n.Deferred(), - f = this, - g = this.length, - h = function() { - --d || e.resolveWith(f, [f]); - }; - "string" != typeof a && (b = a, a = void 0), a = a || "fx"; - while (g--) c = L.get(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h)); - return h(), e.promise(b); - }, - }); - var Q = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, - R = ["Top", "Right", "Bottom", "Left"], - S = function(a, b) { - return a = b || a, "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a); - }, - T = /^(?:checkbox|radio)$/i; - !function() { - var a = l.createDocumentFragment(), b = a.appendChild(l.createElement("div")), c = l.createElement("input"); - c.setAttribute("type", "radio"), - c.setAttribute("checked", "checked"), - c.setAttribute("name", "t"), - b.appendChild(c), - k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, - b.innerHTML = "", - k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue; - }(); - var U = "undefined"; - k.focusinBubbles = "onfocusin" in a; - var V = /^key/, - W = /^(?:mouse|pointer|contextmenu)|click/, - X = /^(?:focusinfocus|focusoutblur)$/, - Y = /^([^.]*)(?:\.(.+)|)$/; - function Z() { - return !0; - } - function $() { - return !1; - } - function _() { - try { - return l.activeElement; - } catch (a) {} - } - n.event = { - global: {}, - add: function(a, b, c, d, e) { - var f, g, h, i, j, k, l, m, o, p, q, r = L.get(a); - if (r) { - c.handler && (f = c, c = f.handler, e = f.selector), - c.guid || (c.guid = n.guid++), - (i = r.events) || (i = r.events = {}), - (g = r.handle) || (g = r.handle = function(b) { - return typeof n !== U && n.event.triggered !== b.type ? n.event.dispatch.apply(a, arguments) : void 0; - }), - b = (b || "").match(E) || [""], - j = b.length; - while (j--) { - h = Y.exec(b[j]) || [], - o = q = h[1], - p = (h[2] || "").split(".").sort(), - o - && (l = n.event.special[o] || {}, - o = (e ? l.delegateType : l.bindType) || o, - l = n.event.special[o] || {}, - k = n.extend({ - type: o, - origType: q, - data: d, - handler: c, - guid: c.guid, - selector: e, - needsContext: e && n.expr.match.needsContext.test(e), - namespace: p.join("."), - }, f), - (m = i[o]) - || (m = i[o] = [], - m.delegateCount = 0, - l.setup && l.setup.call(a, d, p, g) !== !1 || a.addEventListener && a.addEventListener(o, g, !1)), - l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), - e ? m.splice(m.delegateCount++, 0, k) : m.push(k), - n.event.global[o] = !0); - } - } - }, - remove: function(a, b, c, d, e) { - var f, g, h, i, j, k, l, m, o, p, q, r = L.hasData(a) && L.get(a); - if (r && (i = r.events)) { - b = (b || "").match(E) || [""], j = b.length; - while (j--) { - if (h = Y.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) { - l = n.event.special[o] || {}, - o = (d ? l.delegateType : l.bindType) || o, - m = i[o] || [], - h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), - g = f = m.length; - while (f--) { - k = m[f], - !e && q !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) - || d && d !== k.selector && ("**" !== d || !k.selector) - || (m.splice(f, 1), k.selector && m.delegateCount--, l.remove && l.remove.call(a, k)); - } - g && !m.length - && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || n.removeEvent(a, o, r.handle), delete i[o]); - } else for (o in i) n.event.remove(a, o + b[j], c, d, !0); - } - n.isEmptyObject(i) && (delete r.handle, L.remove(a, "events")); - } - }, - trigger: function(b, c, d, e) { - var f, - g, - h, - i, - k, - m, - o, - p = [d || l], - q = j.call(b, "type") ? b.type : b, - r = j.call(b, "namespace") ? b.namespace.split(".") : []; - if ( - g = h = d = d || l, - 3 !== d.nodeType && 8 !== d.nodeType && !X.test(q + n.event.triggered) - && (q.indexOf(".") >= 0 && (r = q.split("."), q = r.shift(), r.sort()), - k = q.indexOf(":") < 0 && "on" + q, - b = b[n.expando] ? b : new n.Event(q, "object" == typeof b && b), - b.isTrigger = e ? 2 : 3, - b.namespace = r.join("."), - b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + r.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, - b.result = void 0, - b.target || (b.target = d), - c = null == c ? [b] : n.makeArray(c, [b]), - o = n.event.special[q] || {}, - e || !o.trigger || o.trigger.apply(d, c) !== !1) - ) { - if (!e && !o.noBubble && !n.isWindow(d)) { - for (i = o.delegateType || q, X.test(i + q) || (g = g.parentNode); g; g = g.parentNode) p.push(g), h = g; - h === (d.ownerDocument || l) && p.push(h.defaultView || h.parentWindow || a); - } - f = 0; - while ((g = p[f++]) && !b.isPropagationStopped()) { - b.type = f > 1 ? i : o.bindType || q, - m = (L.get(g, "events") || {})[b.type] && L.get(g, "handle"), - m && m.apply(g, c), - m = k && g[k], - m && m.apply && n.acceptData(g) && (b.result = m.apply(g, c), b.result === !1 && b.preventDefault()); - } - return b.type = q, - e || b.isDefaultPrevented() || o._default && o._default.apply(p.pop(), c) !== !1 || !n.acceptData(d) - || k && n.isFunction(d[q]) && !n.isWindow(d) - && (h = d[k], - h && (d[k] = null), - n.event.triggered = q, - d[q](), - n.event.triggered = void 0, - h && (d[k] = h)), - b.result; - } - }, - dispatch: function(a) { - a = n.event.fix(a); - var b, - c, - e, - f, - g, - h = [], - i = d.call(arguments), - j = (L.get(this, "events") || {})[a.type] || [], - k = n.event.special[a.type] || {}; - if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) { - h = n.event.handlers.call(this, a, j), b = 0; - while ((f = h[b++]) && !a.isPropagationStopped()) { - a.currentTarget = f.elem, c = 0; - while ( - (g = f.handlers[c++]) && !a.isImmediatePropagationStopped() - ) { - (!a.namespace_re || a.namespace_re.test(g.namespace)) - && (a.handleObj = g, - a.data = g.data, - e = ((n.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i), - void 0 !== e && (a.result = e) === !1 && (a.preventDefault(), a.stopPropagation())); - } - } - return k.postDispatch && k.postDispatch.call(this, a), a.result; - } - }, - handlers: function(a, b) { - var c, d, e, f, g = [], h = b.delegateCount, i = a.target; - if (h && i.nodeType && (!a.button || "click" !== a.type)) { - for (; i !== this; i = i.parentNode || this) { - if (i.disabled !== !0 || "click" !== a.type) { - for (d = [], c = 0; h > c; c++) { - f = b[c], - e = f.selector + " ", - void 0 === d[e] - && (d[e] = f.needsContext ? n(e, this).index(i) >= 0 : n.find(e, this, null, [i]).length), - d[e] && d.push(f); - } - d.length && g.push({ elem: i, handlers: d }); - } - } - } - return h < b.length && g.push({ elem: this, handlers: b.slice(h) }), g; - }, - props: - "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which" - .split(" "), - fixHooks: {}, - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function(a, b) { - return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a; - }, - }, - mouseHooks: { - props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function(a, b) { - var c, d, e, f = b.button; - return null == a.pageX && null != b.clientX - && (c = a.target.ownerDocument || l, - d = c.documentElement, - e = c.body, - a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - - (d && d.clientLeft || e && e.clientLeft || 0), - a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - - (d && d.clientTop || e && e.clientTop || 0)), - a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), - a; - }, - }, - fix: function(a) { - if (a[n.expando]) return a; - var b, c, d, e = a.type, f = a, g = this.fixHooks[e]; - g || (this.fixHooks[e] = g = W.test(e) ? this.mouseHooks : V.test(e) ? this.keyHooks : {}), - d = g.props ? this.props.concat(g.props) : this.props, - a = new n.Event(f), - b = d.length; - while (b--) c = d[b], a[c] = f[c]; - return a.target || (a.target = l), - 3 === a.target.nodeType && (a.target = a.target.parentNode), - g.filter ? g.filter(a, f) : a; - }, - special: { - load: { noBubble: !0 }, - focus: { - trigger: function() { - return this !== _() && this.focus ? (this.focus(), !1) : void 0; - }, - delegateType: "focusin", - }, - blur: { - trigger: function() { - return this === _() && this.blur ? (this.blur(), !1) : void 0; - }, - delegateType: "focusout", - }, - click: { - trigger: function() { - return "checkbox" === this.type && this.click && n.nodeName(this, "input") ? (this.click(), !1) : void 0; - }, - _default: function(a) { - return n.nodeName(a.target, "a"); - }, - }, - beforeunload: { - postDispatch: function(a) { - void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result); - }, - }, - }, - simulate: function(a, b, c, d) { - var e = n.extend(new n.Event(), c, { type: a, isSimulated: !0, originalEvent: {} }); - d ? n.event.trigger(e, null, b) : n.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault(); - }, - }, - n.removeEvent = function(a, b, c) { - a.removeEventListener && a.removeEventListener(b, c, !1); - }, - n.Event = function(a, b) { - return this instanceof n.Event - ? (a && a.type - ? (this.originalEvent = a, - this.type = a.type, - this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 - ? Z - : $) - : this.type = a, - b && n.extend(this, b), - this.timeStamp = a && a.timeStamp || n.now(), - void (this[n.expando] = !0)) - : new n.Event(a, b); - }, - n.Event.prototype = { - isDefaultPrevented: $, - isPropagationStopped: $, - isImmediatePropagationStopped: $, - preventDefault: function() { - var a = this.originalEvent; - this.isDefaultPrevented = Z, a && a.preventDefault && a.preventDefault(); - }, - stopPropagation: function() { - var a = this.originalEvent; - this.isPropagationStopped = Z, a && a.stopPropagation && a.stopPropagation(); - }, - stopImmediatePropagation: function() { - var a = this.originalEvent; - this.isImmediatePropagationStopped = Z, - a && a.stopImmediatePropagation && a.stopImmediatePropagation(), - this.stopPropagation(); - }, - }, - n.each( - { mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, - function(a, b) { - n.event.special[a] = { - delegateType: b, - bindType: b, - handle: function(a) { - var c, d = this, e = a.relatedTarget, f = a.handleObj; - return (!e || e !== d && !n.contains(d, e)) - && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), - c; - }, - }; - }, - ), - k.focusinBubbles || n.each({ focus: "focusin", blur: "focusout" }, function(a, b) { - var c = function(a) { - n.event.simulate(b, a.target, n.event.fix(a), !0); - }; - n.event.special[b] = { - setup: function() { - var d = this.ownerDocument || this, e = L.access(d, b); - e || d.addEventListener(a, c, !0), L.access(d, b, (e || 0) + 1); - }, - teardown: function() { - var d = this.ownerDocument || this, e = L.access(d, b) - 1; - e ? L.access(d, b, e) : (d.removeEventListener(a, c, !0), L.remove(d, b)); - }, - }; - }), - n.fn.extend({ - on: function(a, b, c, d, e) { - var f, g; - if ("object" == typeof a) { - "string" != typeof b && (c = c || b, b = void 0); - for (g in a) this.on(g, b, c, a[g], e); - return this; - } - if ( - null == c && null == d - ? (d = b, c = b = void 0) - : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1 - ) d = $; - else if (!d) return this; - return 1 === e && (f = d, - d = function(a) { - return n().off(a), f.apply(this, arguments); - }, - d.guid = f.guid || (f.guid = n.guid++)), - this.each(function() { - n.event.add(this, a, d, c, b); - }); - }, - one: function(a, b, c, d) { - return this.on(a, b, c, d, 1); - }, - off: function(a, b, c) { - var d, e; - if (a && a.preventDefault && a.handleObj) { - return d = a.handleObj, - n(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), - this; - } - if ("object" == typeof a) { - for (e in a) this.off(e, b, a[e]); - return this; - } - return (b === !1 || "function" == typeof b) && (c = b, b = void 0), - c === !1 && (c = $), - this.each(function() { - n.event.remove(this, a, c, b); - }); - }, - trigger: function(a, b) { - return this.each(function() { - n.event.trigger(a, b, this); - }); - }, - triggerHandler: function(a, b) { - var c = this[0]; - return c ? n.event.trigger(a, b, c, !0) : void 0; - }, - }); - var ab = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - bb = /<([\w:]+)/, - cb = /<|&#?\w+;/, - db = /<(?:script|style|link)/i, - eb = /checked\s*(?:[^=]|=\s*.checked.)/i, - fb = /^$|\/(?:java|ecma)script/i, - gb = /^true\/(.*)/, - hb = /^\s*\s*$/g, - ib = { - option: [1, ""], - thead: [1, "", "
"], - col: [2, "", "
"], - tr: [2, "", "
"], - td: [3, "", "
"], - _default: [0, "", ""], - }; - ib.optgroup = ib.option, - ib.tbody = - ib.tfoot = - ib.colgroup = - ib.caption = - ib.thead, - ib.th = ib.td; - function jb(a, b) { - return n.nodeName(a, "table") && n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") - ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) - : a; - } - function kb(a) { - return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a; - } - function lb(a) { - var b = gb.exec(a.type); - return b ? a.type = b[1] : a.removeAttribute("type"), a; - } - function mb(a, b) { - for (var c = 0, d = a.length; d > c; c++) L.set(a[c], "globalEval", !b || L.get(b[c], "globalEval")); - } - function nb(a, b) { - var c, d, e, f, g, h, i, j; - if (1 === b.nodeType) { - if (L.hasData(a) && (f = L.access(a), g = L.set(b, f), j = f.events)) { - delete g.handle, g.events = {}; - for (e in j) for (c = 0, d = j[e].length; d > c; c++) n.event.add(b, e, j[e][c]); - } - M.hasData(a) && (h = M.access(a), i = n.extend({}, h), M.set(b, i)); - } - } - function ob(a, b) { - var c = a.getElementsByTagName - ? a.getElementsByTagName(b || "*") - : a.querySelectorAll - ? a.querySelectorAll(b || "*") - : []; - return void 0 === b || b && n.nodeName(a, b) ? n.merge([a], c) : c; - } - function pb(a, b) { - var c = b.nodeName.toLowerCase(); - "input" === c && T.test(a.type) - ? b.checked = a.checked - : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue); - } - n.extend({ - clone: function(a, b, c) { - var d, e, f, g, h = a.cloneNode(!0), i = n.contains(a.ownerDocument, a); - if (!(k.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || n.isXMLDoc(a))) { - for (g = ob(h), f = ob(a), d = 0, e = f.length; e > d; d++) pb(f[d], g[d]); - } - if (b) { - if (c) { - for (f = f || ob(a), g = g || ob(h), d = 0, e = f.length; e > d; d++) nb(f[d], g[d]); - } else nb(a, h); - } - return g = ob(h, "script"), g.length > 0 && mb(g, !i && ob(a, "script")), h; - }, - buildFragment: function(a, b, c, d) { - for (var e, f, g, h, i, j, k = b.createDocumentFragment(), l = [], m = 0, o = a.length; o > m; m++) { - if (e = a[m], e || 0 === e) { - if ("object" === n.type(e)) n.merge(l, e.nodeType ? [e] : e); - else if (cb.test(e)) { - f = f || k.appendChild(b.createElement("div")), - g = (bb.exec(e) || ["", ""])[1].toLowerCase(), - h = ib[g] || ib._default, - f.innerHTML = h[1] + e.replace(ab, "<$1>") + h[2], - j = h[0]; - while (j--) f = f.lastChild; - n.merge(l, f.childNodes), f = k.firstChild, f.textContent = ""; - } else l.push(b.createTextNode(e)); - } - } - k.textContent = "", m = 0; - while (e = l[m++]) { - if ( - (!d || -1 === n.inArray(e, d)) - && (i = n.contains(e.ownerDocument, e), f = ob(k.appendChild(e), "script"), i && mb(f), c) - ) { - j = 0; - while (e = f[j++]) fb.test(e.type || "") && c.push(e); - } - } - return k; - }, - cleanData: function(a) { - for (var b, c, d, e, f = n.event.special, g = 0; void 0 !== (c = a[g]); g++) { - if (n.acceptData(c) && (e = c[L.expando], e && (b = L.cache[e]))) { - if (b.events) for (d in b.events) f[d] ? n.event.remove(c, d) : n.removeEvent(c, d, b.handle); - L.cache[e] && delete L.cache[e]; - } - delete M.cache[c[M.expando]]; - } - }, - }), - n.fn.extend({ - text: function(a) { - return J( - this, - function(a) { - return void 0 === a ? n.text(this) : this.empty().each(function() { - (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = a); - }); - }, - null, - a, - arguments.length, - ); - }, - append: function() { - return this.domManip(arguments, function(a) { - if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { - var b = jb(this, a); - b.appendChild(a); - } - }); - }, - prepend: function() { - return this.domManip(arguments, function(a) { - if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { - var b = jb(this, a); - b.insertBefore(a, b.firstChild); - } - }); - }, - before: function() { - return this.domManip(arguments, function(a) { - this.parentNode && this.parentNode.insertBefore(a, this); - }); - }, - after: function() { - return this.domManip(arguments, function(a) { - this.parentNode && this.parentNode.insertBefore(a, this.nextSibling); - }); - }, - remove: function(a, b) { - for ( - var c, d = a ? n.filter(a, this) : this, e = 0; - null != (c = d[e]); - e++ - ) { - b || 1 !== c.nodeType || n.cleanData(ob(c)), - c.parentNode && (b && n.contains(c.ownerDocument, c) && mb(ob(c, "script")), c.parentNode.removeChild(c)); - } - return this; - }, - empty: function() { - for (var a, b = 0; null != (a = this[b]); b++) { - 1 === a.nodeType && (n.cleanData(ob(a, !1)), a.textContent = ""); - } - return this; - }, - clone: function(a, b) { - return a = null == a ? !1 : a, - b = null == b ? a : b, - this.map(function() { - return n.clone(this, a, b); - }); - }, - html: function(a) { - return J( - this, - function(a) { - var b = this[0] || {}, c = 0, d = this.length; - if (void 0 === a && 1 === b.nodeType) return b.innerHTML; - if ("string" == typeof a && !db.test(a) && !ib[(bb.exec(a) || ["", ""])[1].toLowerCase()]) { - a = a.replace(ab, "<$1>"); - try { - for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (n.cleanData(ob(b, !1)), b.innerHTML = a); - b = 0; - } catch (e) {} - } - b && this.empty().append(a); - }, - null, - a, - arguments.length, - ); - }, - replaceWith: function() { - var a = arguments[0]; - return this.domManip(arguments, function(b) { - a = this.parentNode, n.cleanData(ob(this)), a && a.replaceChild(b, this); - }), - a && (a.length || a.nodeType) ? this : this.remove(); - }, - detach: function(a) { - return this.remove(a, !0); - }, - domManip: function(a, b) { - a = e.apply([], a); - var c, d, f, g, h, i, j = 0, l = this.length, m = this, o = l - 1, p = a[0], q = n.isFunction(p); - if (q || l > 1 && "string" == typeof p && !k.checkClone && eb.test(p)) { - return this.each(function(c) { - var d = m.eq(c); - q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b); - }); - } - if ( - l - && (c = n.buildFragment(a, this[0].ownerDocument, !1, this), - d = c.firstChild, - 1 === c.childNodes.length && (c = d), - d) - ) { - for (f = n.map(ob(c, "script"), kb), g = f.length; l > j; j++) { - h = c, j !== o && (h = n.clone(h, !0, !0), g && n.merge(f, ob(h, "script"))), b.call(this[j], h, j); - } - if (g) { - for (i = f[f.length - 1].ownerDocument, n.map(f, lb), j = 0; g > j; j++) { - h = f[j], - fb.test(h.type || "") && !L.access(h, "globalEval") && n.contains(i, h) - && (h.src ? n._evalUrl && n._evalUrl(h.src) : n.globalEval(h.textContent.replace(hb, ""))); - } - } - } - return this; - }, - }), - n.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith", - }, function(a, b) { - n.fn[a] = function(a) { - for (var c, d = [], e = n(a), g = e.length - 1, h = 0; g >= h; h++) { - c = h === g ? this : this.clone(!0), n(e[h])[b](c), f.apply(d, c.get()); - } - return this.pushStack(d); - }; - }); - var qb, rb = {}; - function sb(b, c) { - var d, - e = n(c.createElement(b)).appendTo(c.body), - f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : n.css(e[0], "display"); - return e.detach(), f; - } - function tb(a) { - var b = l, c = rb[a]; - return c - || (c = sb(a, b), - "none" !== c && c - || (qb = (qb || n("", - srcAction: "iframe_src", - patterns: { - youtube: { index: "youtube.com", id: "v=", src: "//www.youtube.com/embed/%id%?autoplay=1" }, - vimeo: { index: "vimeo.com/", id: "/", src: "//player.vimeo.com/video/%id%?autoplay=1" }, - gmaps: { index: "//maps.google.", src: "%id%&output=embed" }, - }, - }, - proto: { - initIframe: function() { - b.types.push(P), - w("BeforeChange", function(a, b, c) { - b !== c && (b === P ? R() : c === P && R(!0)); - }), - w(h + "." + P, function() { - R(); - }); - }, - getIframe: function(c, d) { - var e = c.src, f = b.st.iframe; - a.each(f.patterns, function() { - return e.indexOf(this.index) > -1 - ? (this.id && (e = "string" == typeof this.id - ? e.substr(e.lastIndexOf(this.id) + this.id.length, e.length) - : this.id.call(this, e)), - e = this.src.replace("%id%", e), - !1) - : void 0; - }); - var g = {}; - return f.srcAction && (g[f.srcAction] = e), b._parseMarkup(d, g, c), b.updateStatus("ready"), d; - }, - }, - }); - var S = function(a) { - var c = b.items.length; - return a > c - 1 ? a - c : 0 > a ? c + a : a; - }, - T = function(a, b, c) { - return a.replace(/%curr%/gi, b + 1).replace(/%total%/gi, c); - }; - a.magnificPopup.registerModule("gallery", { - options: { - enabled: !1, - arrowMarkup: "", - preload: [0, 2], - navigateByImgClick: !0, - arrows: !0, - tPrev: "Previous (Left arrow key)", - tNext: "Next (Right arrow key)", - tCounter: "%curr% of %total%", - }, - proto: { - initGallery: function() { - var c = b.st.gallery, e = ".mfp-gallery"; - return b.direction = !0, - c && c.enabled - ? (f += " mfp-gallery", - w(m + e, function() { - c.navigateByImgClick && b.wrap.on("click" + e, ".mfp-img", function() { - return b.items.length > 1 ? (b.next(), !1) : void 0; - }), - d.on("keydown" + e, function(a) { - 37 === a.keyCode ? b.prev() : 39 === a.keyCode && b.next(); - }); - }), - w("UpdateStatus" + e, function(a, c) { - c.text && (c.text = T(c.text, b.currItem.index, b.items.length)); - }), - w(l + e, function(a, d, e, f) { - var g = b.items.length; - e.counter = g > 1 ? T(c.tCounter, f.index, g) : ""; - }), - w("BuildControls" + e, function() { - if (b.items.length > 1 && c.arrows && !b.arrowLeft) { - var d = c.arrowMarkup, - e = b.arrowLeft = a(d.replace(/%title%/gi, c.tPrev).replace(/%dir%/gi, "left")).addClass(s), - f = b.arrowRight = a(d.replace(/%title%/gi, c.tNext).replace(/%dir%/gi, "right")).addClass(s); - e.click(function() { - b.prev(); - }), - f.click(function() { - b.next(); - }), - b.container.append(e.add(f)); - } - }), - w(n + e, function() { - b._preloadTimeout && clearTimeout(b._preloadTimeout), - b._preloadTimeout = setTimeout(function() { - b.preloadNearbyImages(), b._preloadTimeout = null; - }, 16); - }), - void w(h + e, function() { - d.off(e), b.wrap.off("click" + e), b.arrowRight = b.arrowLeft = null; - })) - : !1; - }, - next: function() { - b.direction = !0, b.index = S(b.index + 1), b.updateItemHTML(); - }, - prev: function() { - b.direction = !1, b.index = S(b.index - 1), b.updateItemHTML(); - }, - goTo: function(a) { - b.direction = a >= b.index, b.index = a, b.updateItemHTML(); - }, - preloadNearbyImages: function() { - var a, c = b.st.gallery.preload, d = Math.min(c[0], b.items.length), e = Math.min(c[1], b.items.length); - for (a = 1; a <= (b.direction ? e : d); a++) b._preloadItem(b.index + a); - for (a = 1; a <= (b.direction ? d : e); a++) b._preloadItem(b.index - a); - }, - _preloadItem: function(c) { - if (c = S(c), !b.items[c].preloaded) { - var d = b.items[c]; - d.parsed || (d = b.parseEl(c)), - y("LazyLoad", d), - "image" === d.type && (d.img = a("").on("load.mfploader", function() { - d.hasSize = !0; - }).on("error.mfploader", function() { - d.hasSize = !0, d.loadError = !0, y("LazyLoadError", d); - }).attr("src", d.src)), - d.preloaded = !0; - } - }, - }, - }); - var U = "retina"; - a.magnificPopup.registerModule(U, { - options: { - replaceSrc: function(a) { - return a.src.replace(/\.\w+$/, function(a) { - return "@2x" + a; - }); - }, - ratio: 1, - }, - proto: { - initRetina: function() { - if (window.devicePixelRatio > 1) { - var a = b.st.retina, c = a.ratio; - c = isNaN(c) ? c() : c, - c > 1 && (w("ImageHasSize." + U, function(a, b) { - b.img.css({ "max-width": b.img[0].naturalWidth / c, width: "100%" }); - }), - w("ElementParse." + U, function(b, d) { - d.src = a.replaceSrc(d, c); - })); - } - }, - }, - }), A(); -}); - -// Generated by CoffeeScript 1.6.2 -/* -jQuery Waypoints - v2.0.3 -Copyright (c) 2011-2013 Caleb Troughton -Dual licensed under the MIT license and GPL license. -https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt -*/ -(function() { - var t = [].indexOf || function(t) { - for (var e = 0, n = this.length; e < n; e++) if (e in this && this[e] === t) return e; - return -1; - }, - e = [].slice; - (function(t, e) { - if (typeof define === "function" && define.amd) { - return define("waypoints", ["jquery"], function(n) { - return e(n, t); - }); - } else return e(t.jQuery, t); - })(this, function(n, r) { - var i, o, l, s, f, u, a, c, h, d, p, y, v, w, g, m; - i = n(r); - c = t.call(r, "ontouchstart") >= 0; - s = { horizontal: {}, vertical: {} }; - f = 1; - a = {}; - u = "waypoints-context-id"; - p = "resize.waypoints"; - y = "scroll.waypoints"; - v = 1; - w = "waypoints-waypoint-ids"; - g = "waypoint"; - m = "waypoints"; - o = function() { - function t(t) { - var e = this; - this.$element = t; - this.element = t[0]; - this.didResize = false; - this.didScroll = false; - this.id = "context" + f++; - this.oldScroll = { x: t.scrollLeft(), y: t.scrollTop() }; - this.waypoints = { horizontal: {}, vertical: {} }; - t.data(u, this.id); - a[this.id] = this; - t.bind(y, function() { - var t; - if (!(e.didScroll || c)) { - e.didScroll = true; - t = function() { - e.doScroll(); - return e.didScroll = false; - }; - return r.setTimeout(t, n[m].settings.scrollThrottle); - } - }); - t.bind(p, function() { - var t; - if (!e.didResize) { - e.didResize = true; - t = function() { - n[m]("refresh"); - return e.didResize = false; - }; - return r.setTimeout(t, n[m].settings.resizeThrottle); - } - }); - } - t.prototype.doScroll = function() { - var t, e = this; - t = { - horizontal: { - newScroll: this.$element.scrollLeft(), - oldScroll: this.oldScroll.x, - forward: "right", - backward: "left", - }, - vertical: { - newScroll: this.$element.scrollTop(), - oldScroll: this.oldScroll.y, - forward: "down", - backward: "up", - }, - }; - if (c && (!t.vertical.oldScroll || !t.vertical.newScroll)) n[m]("refresh"); - n.each(t, function(t, r) { - var i, o, l; - l = []; - o = r.newScroll > r.oldScroll; - i = o ? r.forward : r.backward; - n.each(e.waypoints[t], function(t, e) { - var n, i; - if (r.oldScroll < (n = e.offset) && n <= r.newScroll) return l.push(e); - else if (r.newScroll < (i = e.offset) && i <= r.oldScroll) return l.push(e); - }); - l.sort(function(t, e) { - return t.offset - e.offset; - }); - if (!o) l.reverse(); - return n.each(l, function(t, e) { - if (e.options.continuous || t === l.length - 1) return e.trigger([i]); - }); - }); - return this.oldScroll = { x: t.horizontal.newScroll, y: t.vertical.newScroll }; - }; - t.prototype.refresh = function() { - var t, e, r, i = this; - r = n.isWindow(this.element); - e = this.$element.offset(); - this.doScroll(); - t = { - horizontal: { - contextOffset: r ? 0 : e.left, - contextScroll: r ? 0 : this.oldScroll.x, - contextDimension: this.$element.width(), - oldScroll: this.oldScroll.x, - forward: "right", - backward: "left", - offsetProp: "left", - }, - vertical: { - contextOffset: r ? 0 : e.top, - contextScroll: r ? 0 : this.oldScroll.y, - contextDimension: r ? n[m]("viewportHeight") : this.$element.height(), - oldScroll: this.oldScroll.y, - forward: "down", - backward: "up", - offsetProp: "top", - }, - }; - return n.each(t, function(t, e) { - return n.each(i.waypoints[t], function(t, r) { - var i, o, l, s, f; - i = r.options.offset; - l = r.offset; - o = n.isWindow(r.element) ? 0 : r.$element.offset()[e.offsetProp]; - if (n.isFunction(i)) i = i.apply(r.element); - else if (typeof i === "string") { - i = parseFloat(i); - if (r.options.offset.indexOf("%") > -1) i = Math.ceil(e.contextDimension * i / 100); - } - r.offset = o - e.contextOffset + e.contextScroll - i; - if (r.options.onlyOnScroll && l != null || !r.enabled) return; - if (l !== null && l < (s = e.oldScroll) && s <= r.offset) return r.trigger([e.backward]); - else if (l !== null && l > (f = e.oldScroll) && f >= r.offset) return r.trigger([e.forward]); - else if (l === null && e.oldScroll >= r.offset) return r.trigger([e.forward]); - }); - }); - }; - t.prototype.checkEmpty = function() { - if (n.isEmptyObject(this.waypoints.horizontal) && n.isEmptyObject(this.waypoints.vertical)) { - this.$element.unbind([p, y].join(" ")); - return delete a[this.id]; - } - }; - return t; - }(); - l = function() { - function t(t, e, r) { - var i, o; - r = n.extend({}, n.fn[g].defaults, r); - if (r.offset === "bottom-in-view") { - r.offset = function() { - var t; - t = n[m]("viewportHeight"); - if (!n.isWindow(e.element)) t = e.$element.height(); - return t - n(this).outerHeight(); - }; - } - this.$element = t; - this.element = t[0]; - this.axis = r.horizontal ? "horizontal" : "vertical"; - this.callback = r.handler; - this.context = e; - this.enabled = r.enabled; - this.id = "waypoints" + v++; - this.offset = null; - this.options = r; - e.waypoints[this.axis][this.id] = this; - s[this.axis][this.id] = this; - i = (o = t.data(w)) != null ? o : []; - i.push(this.id); - t.data(w, i); - } - t.prototype.trigger = function(t) { - if (!this.enabled) return; - if (this.callback != null) this.callback.apply(this.element, t); - if (this.options.triggerOnce) return this.destroy(); - }; - t.prototype.disable = function() { - return this.enabled = false; - }; - t.prototype.enable = function() { - this.context.refresh(); - return this.enabled = true; - }; - t.prototype.destroy = function() { - delete s[this.axis][this.id]; - delete this.context.waypoints[this.axis][this.id]; - return this.context.checkEmpty(); - }; - t.getWaypointsByElement = function(t) { - var e, r; - r = n(t).data(w); - if (!r) return []; - e = n.extend({}, s.horizontal, s.vertical); - return n.map(r, function(t) { - return e[t]; - }); - }; - return t; - }(); - d = { - init: function(t, e) { - var r; - if (e == null) e = {}; - if ((r = e.handler) == null) e.handler = t; - this.each(function() { - var t, r, i, s; - t = n(this); - i = (s = e.context) != null ? s : n.fn[g].defaults.context; - if (!n.isWindow(i)) i = t.closest(i); - i = n(i); - r = a[i.data(u)]; - if (!r) r = new o(i); - return new l(t, r, e); - }); - n[m]("refresh"); - return this; - }, - disable: function() { - return d._invoke(this, "disable"); - }, - enable: function() { - return d._invoke(this, "enable"); - }, - destroy: function() { - return d._invoke(this, "destroy"); - }, - prev: function(t, e) { - return d._traverse.call(this, t, e, function(t, e, n) { - if (e > 0) return t.push(n[e - 1]); - }); - }, - next: function(t, e) { - return d._traverse.call(this, t, e, function(t, e, n) { - if (e < n.length - 1) return t.push(n[e + 1]); - }); - }, - _traverse: function(t, e, i) { - var o, l; - if (t == null) t = "vertical"; - if (e == null) e = r; - l = h.aggregate(e); - o = []; - this.each(function() { - var e; - e = n.inArray(this, l[t]); - return i(o, e, l[t]); - }); - return this.pushStack(o); - }, - _invoke: function(t, e) { - t.each(function() { - var t; - t = l.getWaypointsByElement(this); - return n.each(t, function(t, n) { - n[e](); - return true; - }); - }); - return this; - }, - }; - n.fn[g] = function() { - var t, r; - r = arguments[0], t = 2 <= arguments.length ? e.call(arguments, 1) : []; - if (d[r]) return d[r].apply(this, t); - else if (n.isFunction(r)) return d.init.apply(this, arguments); - else if (n.isPlainObject(r)) return d.init.apply(this, [null, r]); - else if (!r) return n.error("jQuery Waypoints needs a callback function or handler option."); - else return n.error("The " + r + " method does not exist in jQuery Waypoints."); - }; - n.fn[g].defaults = { - context: r, - continuous: true, - enabled: true, - horizontal: false, - offset: 0, - triggerOnce: false, - }; - h = { - refresh: function() { - return n.each(a, function(t, e) { - return e.refresh(); - }); - }, - viewportHeight: function() { - var t; - return (t = r.innerHeight) != null ? t : i.height(); - }, - aggregate: function(t) { - var e, r, i; - e = s; - if (t) e = (i = a[n(t).data(u)]) != null ? i.waypoints : void 0; - if (!e) return []; - r = { horizontal: [], vertical: [] }; - n.each(r, function(t, i) { - n.each(e[t], function(t, e) { - return i.push(e); - }); - i.sort(function(t, e) { - return t.offset - e.offset; - }); - r[t] = n.map(i, function(t) { - return t.element; - }); - return r[t] = n.unique(r[t]); - }); - return r; - }, - above: function(t) { - if (t == null) t = r; - return h._filter(t, "vertical", function(t, e) { - return e.offset <= t.oldScroll.y; - }); - }, - below: function(t) { - if (t == null) t = r; - return h._filter(t, "vertical", function(t, e) { - return e.offset > t.oldScroll.y; - }); - }, - left: function(t) { - if (t == null) t = r; - return h._filter(t, "horizontal", function(t, e) { - return e.offset <= t.oldScroll.x; - }); - }, - right: function(t) { - if (t == null) t = r; - return h._filter(t, "horizontal", function(t, e) { - return e.offset > t.oldScroll.x; - }); - }, - enable: function() { - return h._invoke("enable"); - }, - disable: function() { - return h._invoke("disable"); - }, - destroy: function() { - return h._invoke("destroy"); - }, - extendFn: function(t, e) { - return d[t] = e; - }, - _invoke: function(t) { - var e; - e = n.extend({}, s.vertical, s.horizontal); - return n.each(e, function(e, n) { - n[t](); - return true; - }); - }, - _filter: function(t, e, r) { - var i, o; - i = a[n(t).data(u)]; - if (!i) return []; - o = []; - n.each(i.waypoints[e], function(t, e) { - if (r(i, e)) return o.push(e); - }); - o.sort(function(t, e) { - return t.offset - e.offset; - }); - return n.map(o, function(t) { - return t.element; - }); - }, - }; - n[m] = function() { - var t, n; - n = arguments[0], t = 2 <= arguments.length ? e.call(arguments, 1) : []; - if (h[n]) return h[n].apply(null, t); - else return h.aggregate.call(null, n); - }; - n[m].settings = { resizeThrottle: 100, scrollThrottle: 30 }; - return i.load(function() { - return n[m]("refresh"); - }); - }); -}).call(this); - -/*! - * imagesLoaded PACKAGED v4.1.1 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -!function(t, e) { - "function" == typeof define && define.amd - ? define("ev-emitter/ev-emitter", e) - : "object" == typeof module && module.exports - ? module.exports = e() - : t.EvEmitter = e(); -}("undefined" != typeof window ? window : this, function() { - function t() {} - var e = t.prototype; - return e.on = function(t, e) { - if (t && e) { - var i = this._events = this._events || {}, n = i[t] = i[t] || []; - return -1 == n.indexOf(e) && n.push(e), this; - } - }, - e.once = function(t, e) { - if (t && e) { - this.on(t, e); - var i = this._onceEvents = this._onceEvents || {}, n = i[t] = i[t] || {}; - return n[e] = !0, this; - } - }, - e.off = function(t, e) { - var i = this._events && this._events[t]; - if (i && i.length) { - var n = i.indexOf(e); - return -1 != n && i.splice(n, 1), this; - } - }, - e.emitEvent = function(t, e) { - var i = this._events && this._events[t]; - if (i && i.length) { - var n = 0, o = i[n]; - e = e || []; - for (var r = this._onceEvents && this._onceEvents[t]; o;) { - var s = r && r[o]; - s && (this.off(t, o), delete r[o]), o.apply(this, e), n += s ? 0 : 1, o = i[n]; - } - return this; - } - }, - t; -}), - function(t, e) { - "use strict"; - "function" == typeof define && define.amd - ? define(["ev-emitter/ev-emitter"], function(i) { - return e(t, i); - }) - : "object" == typeof module && module.exports - ? module.exports = e(t, require("ev-emitter")) - : t.imagesLoaded = e(t, t.EvEmitter); - }(window, function(t, e) { - function i(t, e) { - for (var i in e) t[i] = e[i]; - return t; - } - function n(t) { - var e = []; - if (Array.isArray(t)) e = t; - else if ("number" == typeof t.length) for (var i = 0; i < t.length; i++) e.push(t[i]); - else e.push(t); - return e; - } - function o(t, e, r) { - return this instanceof o - ? ("string" == typeof t && (t = document.querySelectorAll(t)), - this.elements = n(t), - this.options = i({}, this.options), - "function" == typeof e ? r = e : i(this.options, e), - r && this.on("always", r), - this.getImages(), - h && (this.jqDeferred = new h.Deferred()), - void setTimeout(function() { - this.check(); - }.bind(this))) - : new o(t, e, r); - } - function r(t) { - this.img = t; - } - function s(t, e) { - this.url = t, this.element = e, this.img = new Image(); - } - var h = t.jQuery, a = t.console; - o.prototype = Object.create(e.prototype), - o.prototype.options = {}, - o.prototype.getImages = function() { - this.images = [], this.elements.forEach(this.addElementImages, this); - }, - o.prototype.addElementImages = function(t) { - "IMG" == t.nodeName && this.addImage(t), this.options.background === !0 && this.addElementBackgroundImages(t); - var e = t.nodeType; - if (e && d[e]) { - for (var i = t.querySelectorAll("img"), n = 0; n < i.length; n++) { - var o = i[n]; - this.addImage(o); - } - if ("string" == typeof this.options.background) { - var r = t.querySelectorAll(this.options.background); - for (n = 0; n < r.length; n++) { - var s = r[n]; - this.addElementBackgroundImages(s); - } - } - } - }; - var d = { 1: !0, 9: !0, 11: !0 }; - return o.prototype.addElementBackgroundImages = function(t) { - var e = getComputedStyle(t); - if (e) { - for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(e.backgroundImage); null !== n;) { - var o = n && n[2]; - o && this.addBackground(o, t), n = i.exec(e.backgroundImage); - } - } - }, - o.prototype.addImage = function(t) { - var e = new r(t); - this.images.push(e); - }, - o.prototype.addBackground = function(t, e) { - var i = new s(t, e); - this.images.push(i); - }, - o.prototype.check = function() { - function t(t, i, n) { - setTimeout(function() { - e.progress(t, i, n); - }); - } - var e = this; - return this.progressedCount = 0, - this.hasAnyBroken = !1, - this.images.length - ? void this.images.forEach(function(e) { - e.once("progress", t), e.check(); - }) - : void this.complete(); - }, - o.prototype.progress = function(t, e, i) { - this.progressedCount++, - this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, - this.emitEvent("progress", [this, t, e]), - this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), - this.progressedCount == this.images.length && this.complete(), - this.options.debug && a && a.log("progress: " + i, t, e); - }, - o.prototype.complete = function() { - var t = this.hasAnyBroken ? "fail" : "done"; - if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) { - var e = this.hasAnyBroken ? "reject" : "resolve"; - this.jqDeferred[e](this); - } - }, - r.prototype = Object.create(e.prototype), - r.prototype.check = function() { - var t = this.getIsImageComplete(); - return t - ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") - : (this.proxyImage = new Image(), - this.proxyImage.addEventListener("load", this), - this.proxyImage.addEventListener("error", this), - this.img.addEventListener("load", this), - this.img.addEventListener("error", this), - void (this.proxyImage.src = this.img.src)); - }, - r.prototype.getIsImageComplete = function() { - return this.img.complete && void 0 !== this.img.naturalWidth; - }, - r.prototype.confirm = function(t, e) { - this.isLoaded = t, this.emitEvent("progress", [this, this.img, e]); - }, - r.prototype.handleEvent = function(t) { - var e = "on" + t.type; - this[e] && this[e](t); - }, - r.prototype.onload = function() { - this.confirm(!0, "onload"), this.unbindEvents(); - }, - r.prototype.onerror = function() { - this.confirm(!1, "onerror"), this.unbindEvents(); - }, - r.prototype.unbindEvents = function() { - this.proxyImage.removeEventListener("load", this), - this.proxyImage.removeEventListener("error", this), - this.img.removeEventListener("load", this), - this.img.removeEventListener("error", this); - }, - s.prototype = Object.create(r.prototype), - s.prototype.check = function() { - this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url; - var t = this.getIsImageComplete(); - t && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents()); - }, - s.prototype.unbindEvents = function() { - this.img.removeEventListener("load", this), this.img.removeEventListener("error", this); - }, - s.prototype.confirm = function(t, e) { - this.isLoaded = t, this.emitEvent("progress", [this, this.element, e]); - }, - o.makeJQueryPlugin = function(e) { - e = e || t.jQuery, - e && (h = e, - h.fn.imagesLoaded = function(t, e) { - var i = new o(this, t, e); - return i.jqDeferred.promise(h(this)); - }); - }, - o.makeJQueryPlugin(), - o; - }); - -/*! - * Isotope PACKAGED v2.2.2 - * - * Licensed GPLv3 for open source use - * or Isotope Commercial License for commercial use - * - * http://isotope.metafizzy.co - * Copyright 2015 Metafizzy - */ - -!function(a) { - function b() {} - function c(a) { - function c(b) { - b.prototype.option || (b.prototype.option = function(b) { - a.isPlainObject(b) && (this.options = a.extend(!0, this.options, b)); - }); - } - function e(b, c) { - a.fn[b] = function(e) { - if ("string" == typeof e) { - for (var g = d.call(arguments, 1), h = 0, i = this.length; i > h; h++) { - var j = this[h], k = a.data(j, b); - if (k) { - if (a.isFunction(k[e]) && "_" !== e.charAt(0)) { - var l = k[e].apply(k, g); - if (void 0 !== l) return l; - } else f("no such method '" + e + "' for " + b + " instance"); - } else f("cannot call methods on " + b + " prior to initialization; attempted to call '" + e + "'"); - } - return this; - } - return this.each(function() { - var d = a.data(this, b); - d ? (d.option(e), d._init()) : (d = new c(this, e), a.data(this, b, d)); - }); - }; - } - if (a) { - var f = "undefined" == typeof console ? b : function(a) { - console.error(a); - }; - return a.bridget = function(a, b) { - c(b), e(a, b); - }, - a.bridget; - } - } - var d = Array.prototype.slice; - "function" == typeof define && define.amd - ? define("jquery-bridget/jquery.bridget", ["jquery"], c) - : c("object" == typeof exports ? require("jquery") : a.jQuery); -}(window), - function(a) { - function b(b) { - var c = a.event; - return c.target = c.target || c.srcElement || b, c; - } - var c = document.documentElement, d = function() {}; - c.addEventListener - ? d = function(a, b, c) { - a.addEventListener(b, c, !1); - } - : c.attachEvent && (d = function(a, c, d) { - a[c + d] = d.handleEvent - ? function() { - var c = b(a); - d.handleEvent.call(d, c); - } - : function() { - var c = b(a); - d.call(a, c); - }, a.attachEvent("on" + c, a[c + d]); - }); - var e = function() {}; - c.removeEventListener - ? e = function(a, b, c) { - a.removeEventListener(b, c, !1); - } - : c.detachEvent && (e = function(a, b, c) { - a.detachEvent("on" + b, a[b + c]); - try { - delete a[b + c]; - } catch (d) { - a[b + c] = void 0; - } - }); - var f = { bind: d, unbind: e }; - "function" == typeof define && define.amd - ? define("eventie/eventie", f) - : "object" == typeof exports - ? module.exports = f - : a.eventie = f; - }(window), - function() { - "use strict"; - function a() {} - function b(a, b) { - for (var c = a.length; c--;) if (a[c].listener === b) return c; - return -1; - } - function c(a) { - return function() { - return this[a].apply(this, arguments); - }; - } - var d = a.prototype, e = this, f = e.EventEmitter; - d.getListeners = function(a) { - var b, c, d = this._getEvents(); - if (a instanceof RegExp) { - b = {}; - for (c in d) d.hasOwnProperty(c) && a.test(c) && (b[c] = d[c]); - } else b = d[a] || (d[a] = []); - return b; - }, - d.flattenListeners = function(a) { - var b, c = []; - for (b = 0; b < a.length; b += 1) c.push(a[b].listener); - return c; - }, - d.getListenersAsObject = function(a) { - var b, c = this.getListeners(a); - return c instanceof Array && (b = {}, b[a] = c), b || c; - }, - d.addListener = function(a, c) { - var d, e = this.getListenersAsObject(a), f = "object" == typeof c; - for (d in e) e.hasOwnProperty(d) && -1 === b(e[d], c) && e[d].push(f ? c : { listener: c, once: !1 }); - return this; - }, - d.on = c("addListener"), - d.addOnceListener = function(a, b) { - return this.addListener(a, { listener: b, once: !0 }); - }, - d.once = c("addOnceListener"), - d.defineEvent = function(a) { - return this.getListeners(a), this; - }, - d.defineEvents = function(a) { - for (var b = 0; b < a.length; b += 1) this.defineEvent(a[b]); - return this; - }, - d.removeListener = function(a, c) { - var d, e, f = this.getListenersAsObject(a); - for (e in f) f.hasOwnProperty(e) && (d = b(f[e], c), -1 !== d && f[e].splice(d, 1)); - return this; - }, - d.off = c("removeListener"), - d.addListeners = function(a, b) { - return this.manipulateListeners(!1, a, b); - }, - d.removeListeners = function(a, b) { - return this.manipulateListeners(!0, a, b); - }, - d.manipulateListeners = function(a, b, c) { - var d, e, f = a ? this.removeListener : this.addListener, g = a ? this.removeListeners : this.addListeners; - if ("object" != typeof b || b instanceof RegExp) for (d = c.length; d--;) f.call(this, b, c[d]); - else {for (d in b) {b.hasOwnProperty(d) && (e = b[d]) - && ("function" == typeof e ? f.call(this, d, e) : g.call(this, d, e));}} - return this; - }, - d.removeEvent = function(a) { - var b, c = typeof a, d = this._getEvents(); - if ("string" === c) delete d[a]; - else if (a instanceof RegExp) for (b in d) d.hasOwnProperty(b) && a.test(b) && delete d[b]; - else delete this._events; - return this; - }, - d.removeAllListeners = c("removeEvent"), - d.emitEvent = function(a, b) { - var c, d, e, f, g = this.getListenersAsObject(a); - for (e in g) { - if (g.hasOwnProperty(e)) { - for (d = g[e].length; d--;) {c = g[e][d], - c.once === !0 && this.removeListener(a, c.listener), - f = c.listener.apply(this, b || []), - f === this._getOnceReturnValue() && this.removeListener(a, c.listener);} - } - } - return this; - }, - d.trigger = c("emitEvent"), - d.emit = function(a) { - var b = Array.prototype.slice.call(arguments, 1); - return this.emitEvent(a, b); - }, - d.setOnceReturnValue = function(a) { - return this._onceReturnValue = a, this; - }, - d._getOnceReturnValue = function() { - return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0; - }, - d._getEvents = function() { - return this._events || (this._events = {}); - }, - a.noConflict = function() { - return e.EventEmitter = f, a; - }, - "function" == typeof define && define.amd - ? define("eventEmitter/EventEmitter", [], function() { - return a; - }) - : "object" == typeof module && module.exports - ? module.exports = a - : e.EventEmitter = a; - }.call(this), - function(a) { - function b(a) { - if (a) { - if ("string" == typeof d[a]) return a; - a = a.charAt(0).toUpperCase() + a.slice(1); - for (var b, e = 0, f = c.length; f > e; e++) if (b = c[e] + a, "string" == typeof d[b]) return b; - } - } - var c = "Webkit Moz ms Ms O".split(" "), d = document.documentElement.style; - "function" == typeof define && define.amd - ? define("get-style-property/get-style-property", [], function() { - return b; - }) - : "object" == typeof exports - ? module.exports = b - : a.getStyleProperty = b; - }(window), - function(a, b) { - function c(a) { - var b = parseFloat(a), c = -1 === a.indexOf("%") && !isNaN(b); - return c && b; - } - function d() {} - function e() { - for ( - var a = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, - b = 0, - c = h.length; - c > b; - b++ - ) { - var d = h[b]; - a[d] = 0; - } - return a; - } - function f(b) { - function d() { - if (!m) { - m = !0; - var d = a.getComputedStyle; - if ( - j = function() { - var a = d - ? function(a) { - return d(a, null); - } - : function(a) { - return a.currentStyle; - }; - return function(b) { - var c = a(b); - return c - || g( - "Style returned " + c - + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1", - ), - c; - }; - }(), k = b("boxSizing") - ) { - var e = document.createElement("div"); - e.style.width = "200px", - e.style.padding = "1px 2px 3px 4px", - e.style.borderStyle = "solid", - e.style.borderWidth = "1px 2px 3px 4px", - e.style[k] = "border-box"; - var f = document.body || document.documentElement; - f.appendChild(e); - var h = j(e); - l = 200 === c(h.width), f.removeChild(e); - } - } - } - function f(a) { - if (d(), "string" == typeof a && (a = document.querySelector(a)), a && "object" == typeof a && a.nodeType) { - var b = j(a); - if ("none" === b.display) return e(); - var f = {}; - f.width = a.offsetWidth, f.height = a.offsetHeight; - for (var g = f.isBorderBox = !(!k || !b[k] || "border-box" !== b[k]), m = 0, n = h.length; n > m; m++) { - var o = h[m], p = b[o]; - p = i(a, p); - var q = parseFloat(p); - f[o] = isNaN(q) ? 0 : q; - } - var r = f.paddingLeft + f.paddingRight, - s = f.paddingTop + f.paddingBottom, - t = f.marginLeft + f.marginRight, - u = f.marginTop + f.marginBottom, - v = f.borderLeftWidth + f.borderRightWidth, - w = f.borderTopWidth + f.borderBottomWidth, - x = g && l, - y = c(b.width); - y !== !1 && (f.width = y + (x ? 0 : r + v)); - var z = c(b.height); - return z !== !1 && (f.height = z + (x ? 0 : s + w)), - f.innerWidth = f.width - (r + v), - f.innerHeight = f.height - (s + w), - f.outerWidth = f.width + t, - f.outerHeight = f.height + u, - f; - } - } - function i(b, c) { - if (a.getComputedStyle || -1 === c.indexOf("%")) return c; - var d = b.style, e = d.left, f = b.runtimeStyle, g = f && f.left; - return g && (f.left = b.currentStyle.left), d.left = c, c = d.pixelLeft, d.left = e, g && (f.left = g), c; - } - var j, k, l, m = !1; - return f; - } - var g = "undefined" == typeof console ? d : function(a) { - console.error(a); - }, - h = [ - "paddingLeft", - "paddingRight", - "paddingTop", - "paddingBottom", - "marginLeft", - "marginRight", - "marginTop", - "marginBottom", - "borderLeftWidth", - "borderRightWidth", - "borderTopWidth", - "borderBottomWidth", - ]; - "function" == typeof define && define.amd - ? define("get-size/get-size", ["get-style-property/get-style-property"], f) - : "object" == typeof exports - ? module.exports = f(require("desandro-get-style-property")) - : a.getSize = f(a.getStyleProperty); - }(window), - function(a) { - function b(a) { - "function" == typeof a && (b.isReady ? a() : g.push(a)); - } - function c(a) { - var c = "readystatechange" === a.type && "complete" !== f.readyState; - b.isReady || c || d(); - } - function d() { - b.isReady = !0; - for (var a = 0, c = g.length; c > a; a++) { - var d = g[a]; - d(); - } - } - function e(e) { - return "complete" === f.readyState - ? d() - : (e.bind(f, "DOMContentLoaded", c), e.bind(f, "readystatechange", c), e.bind(a, "load", c)), - b; - } - var f = a.document, g = []; - b.isReady = !1, - "function" == typeof define && define.amd - ? define("doc-ready/doc-ready", ["eventie/eventie"], e) - : "object" == typeof exports - ? module.exports = e(require("eventie")) - : a.docReady = e(a.eventie); - }(window), - function(a) { - "use strict"; - function b(a, b) { - return a[g](b); - } - function c(a) { - if (!a.parentNode) { - var b = document.createDocumentFragment(); - b.appendChild(a); - } - } - function d(a, b) { - c(a); - for (var d = a.parentNode.querySelectorAll(b), e = 0, f = d.length; f > e; e++) if (d[e] === a) return !0; - return !1; - } - function e(a, d) { - return c(a), b(a, d); - } - var f, - g = function() { - if (a.matches) return "matches"; - if (a.matchesSelector) return "matchesSelector"; - for (var b = ["webkit", "moz", "ms", "o"], c = 0, d = b.length; d > c; c++) { - var e = b[c], f = e + "MatchesSelector"; - if (a[f]) return f; - } - }(); - if (g) { - var h = document.createElement("div"), i = b(h, "div"); - f = i ? b : e; - } else f = d; - "function" == typeof define && define.amd - ? define("matches-selector/matches-selector", [], function() { - return f; - }) - : "object" == typeof exports - ? module.exports = f - : window.matchesSelector = f; - }(Element.prototype), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("fizzy-ui-utils/utils", ["doc-ready/doc-ready", "matches-selector/matches-selector"], function(c, d) { - return b(a, c, d); - }) - : "object" == typeof exports - ? module.exports = b(a, require("doc-ready"), require("desandro-matches-selector")) - : a.fizzyUIUtils = b(a, a.docReady, a.matchesSelector); - }(window, function(a, b, c) { - var d = {}; - d.extend = function(a, b) { - for (var c in b) a[c] = b[c]; - return a; - }, - d.modulo = function(a, b) { - return (a % b + b) % b; - }; - var e = Object.prototype.toString; - d.isArray = function(a) { - return "[object Array]" == e.call(a); - }, - d.makeArray = function(a) { - var b = []; - if (d.isArray(a)) b = a; - else if (a && "number" == typeof a.length) for (var c = 0, e = a.length; e > c; c++) b.push(a[c]); - else b.push(a); - return b; - }, - d.indexOf = Array.prototype.indexOf - ? function(a, b) { - return a.indexOf(b); - } - : function(a, b) { - for (var c = 0, d = a.length; d > c; c++) if (a[c] === b) return c; - return -1; - }, - d.removeFrom = function(a, b) { - var c = d.indexOf(a, b); - -1 != c && a.splice(c, 1); - }, - d.isElement = "function" == typeof HTMLElement || "object" == typeof HTMLElement - ? function(a) { - return a instanceof HTMLElement; - } - : function(a) { - return a && "object" == typeof a && 1 == a.nodeType && "string" == typeof a.nodeName; - }, - d.setText = function() { - function a(a, c) { - b = b || (void 0 !== document.documentElement.textContent ? "textContent" : "innerText"), a[b] = c; - } - var b; - return a; - }(), - d.getParent = function(a, b) { - for (; a != document.body;) if (a = a.parentNode, c(a, b)) return a; - }, - d.getQueryElement = function(a) { - return "string" == typeof a ? document.querySelector(a) : a; - }, - d.handleEvent = function(a) { - var b = "on" + a.type; - this[b] && this[b](a); - }, - d.filterFindElements = function(a, b) { - a = d.makeArray(a); - for (var e = [], f = 0, g = a.length; g > f; f++) { - var h = a[f]; - if (d.isElement(h)) { - if (b) { - c(h, b) && e.push(h); - for (var i = h.querySelectorAll(b), j = 0, k = i.length; k > j; j++) e.push(i[j]); - } else e.push(h); - } - } - return e; - }, - d.debounceMethod = function(a, b, c) { - var d = a.prototype[b], e = b + "Timeout"; - a.prototype[b] = function() { - var a = this[e]; - a && clearTimeout(a); - var b = arguments, f = this; - this[e] = setTimeout(function() { - d.apply(f, b), delete f[e]; - }, c || 100); - }; - }, - d.toDashed = function(a) { - return a.replace(/(.)([A-Z])/g, function(a, b, c) { - return b + "-" + c; - }).toLowerCase(); - }; - var f = a.console; - return d.htmlInit = function(c, e) { - b(function() { - for ( - var b = d.toDashed(e), - g = document.querySelectorAll(".js-" + b), - h = "data-" + b + "-options", - i = 0, - j = g.length; - j > i; - i++ - ) { - var k, l = g[i], m = l.getAttribute(h); - try { - k = m && JSON.parse(m); - } catch (n) { - f - && f.error( - "Error parsing " + h + " on " + l.nodeName.toLowerCase() + (l.id ? "#" + l.id : "") + ": " + n, - ); - continue; - } - var o = new c(l, k), p = a.jQuery; - p && p.data(l, e, o); - } - }); - }, - d; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("outlayer/item", [ - "eventEmitter/EventEmitter", - "get-size/get-size", - "get-style-property/get-style-property", - "fizzy-ui-utils/utils", - ], function(c, d, e, f) { - return b(a, c, d, e, f); - }) - : "object" == typeof exports - ? module.exports = b( - a, - require("wolfy87-eventemitter"), - require("get-size"), - require("desandro-get-style-property"), - require("fizzy-ui-utils"), - ) - : (a.Outlayer = {}, a.Outlayer.Item = b(a, a.EventEmitter, a.getSize, a.getStyleProperty, a.fizzyUIUtils)); - }(window, function(a, b, c, d, e) { - "use strict"; - function f(a) { - for (var b in a) return !1; - return b = null, !0; - } - function g(a, b) { - a && (this.element = a, this.layout = b, this.position = { x: 0, y: 0 }, this._create()); - } - function h(a) { - return a.replace(/([A-Z])/g, function(a) { - return "-" + a.toLowerCase(); - }); - } - var i = a.getComputedStyle, - j = i - ? function(a) { - return i(a, null); - } - : function(a) { - return a.currentStyle; - }, - k = d("transition"), - l = d("transform"), - m = k && l, - n = !!d("perspective"), - o = { - WebkitTransition: "webkitTransitionEnd", - MozTransition: "transitionend", - OTransition: "otransitionend", - transition: "transitionend", - }[k], - p = ["transform", "transition", "transitionDuration", "transitionProperty"], - q = function() { - for (var a = {}, b = 0, c = p.length; c > b; b++) { - var e = p[b], f = d(e); - f && f !== e && (a[e] = f); - } - return a; - }(); - e.extend(g.prototype, b.prototype), - g.prototype._create = function() { - this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }); - }, - g.prototype.handleEvent = function(a) { - var b = "on" + a.type; - this[b] && this[b](a); - }, - g.prototype.getSize = function() { - this.size = c(this.element); - }, - g.prototype.css = function(a) { - var b = this.element.style; - for (var c in a) { - var d = q[c] || c; - b[d] = a[c]; - } - }, - g.prototype.getPosition = function() { - var a = j(this.element), - b = this.layout.options, - c = b.isOriginLeft, - d = b.isOriginTop, - e = a[c ? "left" : "right"], - f = a[d ? "top" : "bottom"], - g = this.layout.size, - h = -1 != e.indexOf("%") ? parseFloat(e) / 100 * g.width : parseInt(e, 10), - i = -1 != f.indexOf("%") ? parseFloat(f) / 100 * g.height : parseInt(f, 10); - h = isNaN(h) ? 0 : h, - i = isNaN(i) ? 0 : i, - h -= c ? g.paddingLeft : g.paddingRight, - i -= d ? g.paddingTop : g.paddingBottom, - this.position.x = h, - this.position.y = i; - }, - g.prototype.layoutPosition = function() { - var a = this.layout.size, - b = this.layout.options, - c = {}, - d = b.isOriginLeft ? "paddingLeft" : "paddingRight", - e = b.isOriginLeft ? "left" : "right", - f = b.isOriginLeft ? "right" : "left", - g = this.position.x + a[d]; - c[e] = this.getXValue(g), c[f] = ""; - var h = b.isOriginTop ? "paddingTop" : "paddingBottom", - i = b.isOriginTop ? "top" : "bottom", - j = b.isOriginTop ? "bottom" : "top", - k = this.position.y + a[h]; - c[i] = this.getYValue(k), c[j] = "", this.css(c), this.emitEvent("layout", [this]); - }, - g.prototype.getXValue = function(a) { - var b = this.layout.options; - return b.percentPosition && !b.isHorizontal ? a / this.layout.size.width * 100 + "%" : a + "px"; - }, - g.prototype.getYValue = function(a) { - var b = this.layout.options; - return b.percentPosition && b.isHorizontal ? a / this.layout.size.height * 100 + "%" : a + "px"; - }, - g.prototype._transitionTo = function(a, b) { - this.getPosition(); - var c = this.position.x, - d = this.position.y, - e = parseInt(a, 10), - f = parseInt(b, 10), - g = e === this.position.x && f === this.position.y; - if (this.setPosition(a, b), g && !this.isTransitioning) return void this.layoutPosition(); - var h = a - c, i = b - d, j = {}; - j.transform = this.getTranslate(h, i), - this.transition({ to: j, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }); - }, - g.prototype.getTranslate = function(a, b) { - var c = this.layout.options; - return a = c.isOriginLeft ? a : -a, - b = c.isOriginTop ? b : -b, - n ? "translate3d(" + a + "px, " + b + "px, 0)" : "translate(" + a + "px, " + b + "px)"; - }, - g.prototype.goTo = function(a, b) { - this.setPosition(a, b), this.layoutPosition(); - }, - g.prototype.moveTo = m ? g.prototype._transitionTo : g.prototype.goTo, - g.prototype.setPosition = function(a, b) { - this.position.x = parseInt(a, 10), this.position.y = parseInt(b, 10); - }, - g.prototype._nonTransition = function(a) { - this.css(a.to), a.isCleaning && this._removeStyles(a.to); - for (var b in a.onTransitionEnd) a.onTransitionEnd[b].call(this); - }, - g.prototype._transition = function(a) { - if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(a); - var b = this._transn; - for (var c in a.onTransitionEnd) b.onEnd[c] = a.onTransitionEnd[c]; - for (c in a.to) b.ingProperties[c] = !0, a.isCleaning && (b.clean[c] = !0); - if (a.from) { - this.css(a.from); - var d = this.element.offsetHeight; - d = null; - } - this.enableTransition(a.to), this.css(a.to), this.isTransitioning = !0; - }; - var r = "opacity," + h(q.transform || "transform"); - g.prototype.enableTransition = function() { - this.isTransitioning - || (this.css({ transitionProperty: r, transitionDuration: this.layout.options.transitionDuration }), - this.element.addEventListener(o, this, !1)); - }, - g.prototype.transition = g.prototype[k ? "_transition" : "_nonTransition"], - g.prototype.onwebkitTransitionEnd = function(a) { - this.ontransitionend(a); - }, - g.prototype.onotransitionend = function(a) { - this.ontransitionend(a); - }; - var s = { "-webkit-transform": "transform", "-moz-transform": "transform", "-o-transform": "transform" }; - g.prototype.ontransitionend = function(a) { - if (a.target === this.element) { - var b = this._transn, c = s[a.propertyName] || a.propertyName; - if ( - delete b.ingProperties[c], - f(b.ingProperties) && this.disableTransition(), - c in b.clean && (this.element.style[a.propertyName] = "", delete b.clean[c]), - c in b.onEnd - ) { - var d = b.onEnd[c]; - d.call(this), delete b.onEnd[c]; - } - this.emitEvent("transitionEnd", [this]); - } - }, - g.prototype.disableTransition = function() { - this.removeTransitionStyles(), this.element.removeEventListener(o, this, !1), this.isTransitioning = !1; - }, - g.prototype._removeStyles = function(a) { - var b = {}; - for (var c in a) b[c] = ""; - this.css(b); - }; - var t = { transitionProperty: "", transitionDuration: "" }; - return g.prototype.removeTransitionStyles = function() { - this.css(t); - }, - g.prototype.removeElem = function() { - this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]); - }, - g.prototype.remove = function() { - if (!k || !parseFloat(this.layout.options.transitionDuration)) return void this.removeElem(); - var a = this; - this.once("transitionEnd", function() { - a.removeElem(); - }), this.hide(); - }, - g.prototype.reveal = function() { - delete this.isHidden, this.css({ display: "" }); - var a = this.layout.options, b = {}, c = this.getHideRevealTransitionEndProperty("visibleStyle"); - b[c] = this.onRevealTransitionEnd, - this.transition({ from: a.hiddenStyle, to: a.visibleStyle, isCleaning: !0, onTransitionEnd: b }); - }, - g.prototype.onRevealTransitionEnd = function() { - this.isHidden || this.emitEvent("reveal"); - }, - g.prototype.getHideRevealTransitionEndProperty = function(a) { - var b = this.layout.options[a]; - if (b.opacity) return "opacity"; - for (var c in b) return c; - }, - g.prototype.hide = function() { - this.isHidden = !0, this.css({ display: "" }); - var a = this.layout.options, b = {}, c = this.getHideRevealTransitionEndProperty("hiddenStyle"); - b[c] = this.onHideTransitionEnd, - this.transition({ from: a.visibleStyle, to: a.hiddenStyle, isCleaning: !0, onTransitionEnd: b }); - }, - g.prototype.onHideTransitionEnd = function() { - this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")); - }, - g.prototype.destroy = function() { - this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }); - }, - g; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("outlayer/outlayer", [ - "eventie/eventie", - "eventEmitter/EventEmitter", - "get-size/get-size", - "fizzy-ui-utils/utils", - "./item", - ], function(c, d, e, f, g) { - return b(a, c, d, e, f, g); - }) - : "object" == typeof exports - ? module.exports = b( - a, - require("eventie"), - require("wolfy87-eventemitter"), - require("get-size"), - require("fizzy-ui-utils"), - require("./item"), - ) - : a.Outlayer = b(a, a.eventie, a.EventEmitter, a.getSize, a.fizzyUIUtils, a.Outlayer.Item); - }(window, function(a, b, c, d, e, f) { - "use strict"; - function g(a, b) { - var c = e.getQueryElement(a); - if (!c) return void (h && h.error("Bad element for " + this.constructor.namespace + ": " + (c || a))); - this.element = c, - i && (this.$element = i(this.element)), - this.options = e.extend({}, this.constructor.defaults), - this.option(b); - var d = ++k; - this.element.outlayerGUID = d, l[d] = this, this._create(), this.options.isInitLayout && this.layout(); - } - var h = a.console, i = a.jQuery, j = function() {}, k = 0, l = {}; - return g.namespace = "outlayer", - g.Item = f, - g.defaults = { - containerStyle: { position: "relative" }, - isInitLayout: !0, - isOriginLeft: !0, - isOriginTop: !0, - isResizeBound: !0, - isResizingContainer: !0, - transitionDuration: "0.4s", - hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, - visibleStyle: { opacity: 1, transform: "scale(1)" }, - }, - e.extend(g.prototype, c.prototype), - g.prototype.option = function(a) { - e.extend(this.options, a); - }, - g.prototype._create = function() { - this.reloadItems(), - this.stamps = [], - this.stamp(this.options.stamp), - e.extend(this.element.style, this.options.containerStyle), - this.options.isResizeBound && this.bindResize(); - }, - g.prototype.reloadItems = function() { - this.items = this._itemize(this.element.children); - }, - g.prototype._itemize = function(a) { - for ( - var b = this._filterFindItemElements(a), c = this.constructor.Item, d = [], e = 0, f = b.length; - f > e; - e++ - ) { - var g = b[e], h = new c(g, this); - d.push(h); - } - return d; - }, - g.prototype._filterFindItemElements = function(a) { - return e.filterFindElements(a, this.options.itemSelector); - }, - g.prototype.getItemElements = function() { - for (var a = [], b = 0, c = this.items.length; c > b; b++) a.push(this.items[b].element); - return a; - }, - g.prototype.layout = function() { - this._resetLayout(), this._manageStamps(); - var a = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; - this.layoutItems(this.items, a), this._isLayoutInited = !0; - }, - g.prototype._init = g.prototype.layout, - g.prototype._resetLayout = function() { - this.getSize(); - }, - g.prototype.getSize = function() { - this.size = d(this.element); - }, - g.prototype._getMeasurement = function(a, b) { - var c, f = this.options[a]; - f - ? ("string" == typeof f ? c = this.element.querySelector(f) : e.isElement(f) && (c = f), - this[a] = c ? d(c)[b] : f) - : this[a] = 0; - }, - g.prototype.layoutItems = function(a, b) { - a = this._getItemsForLayout(a), this._layoutItems(a, b), this._postLayout(); - }, - g.prototype._getItemsForLayout = function(a) { - for (var b = [], c = 0, d = a.length; d > c; c++) { - var e = a[c]; - e.isIgnored || b.push(e); - } - return b; - }, - g.prototype._layoutItems = function(a, b) { - if (this._emitCompleteOnItems("layout", a), a && a.length) { - for (var c = [], d = 0, e = a.length; e > d; d++) { - var f = a[d], g = this._getItemLayoutPosition(f); - g.item = f, g.isInstant = b || f.isLayoutInstant, c.push(g); - } - this._processLayoutQueue(c); - } - }, - g.prototype._getItemLayoutPosition = function() { - return { x: 0, y: 0 }; - }, - g.prototype._processLayoutQueue = function(a) { - for (var b = 0, c = a.length; c > b; b++) { - var d = a[b]; - this._positionItem(d.item, d.x, d.y, d.isInstant); - } - }, - g.prototype._positionItem = function(a, b, c, d) { - d ? a.goTo(b, c) : a.moveTo(b, c); - }, - g.prototype._postLayout = function() { - this.resizeContainer(); - }, - g.prototype.resizeContainer = function() { - if (this.options.isResizingContainer) { - var a = this._getContainerSize(); - a && (this._setContainerMeasure(a.width, !0), this._setContainerMeasure(a.height, !1)); - } - }, - g.prototype._getContainerSize = j, - g.prototype._setContainerMeasure = function(a, b) { - if (void 0 !== a) { - var c = this.size; - c.isBorderBox && (a += b - ? c.paddingLeft + c.paddingRight + c.borderLeftWidth + c.borderRightWidth - : c.paddingBottom + c.paddingTop + c.borderTopWidth + c.borderBottomWidth), - a = Math.max(a, 0), - this.element.style[b ? "width" : "height"] = a + "px"; - } - }, - g.prototype._emitCompleteOnItems = function(a, b) { - function c() { - e.dispatchEvent(a + "Complete", null, [b]); - } - function d() { - g++, g === f && c(); - } - var e = this, f = b.length; - if (!b || !f) return void c(); - for (var g = 0, h = 0, i = b.length; i > h; h++) { - var j = b[h]; - j.once(a, d); - } - }, - g.prototype.dispatchEvent = function(a, b, c) { - var d = b ? [b].concat(c) : c; - if (this.emitEvent(a, d), i) { - if (this.$element = this.$element || i(this.element), b) { - var e = i.Event(b); - e.type = a, this.$element.trigger(e, c); - } else this.$element.trigger(a, c); - } - }, - g.prototype.ignore = function(a) { - var b = this.getItem(a); - b && (b.isIgnored = !0); - }, - g.prototype.unignore = function(a) { - var b = this.getItem(a); - b && delete b.isIgnored; - }, - g.prototype.stamp = function(a) { - if (a = this._find(a)) { - this.stamps = this.stamps.concat(a); - for (var b = 0, c = a.length; c > b; b++) { - var d = a[b]; - this.ignore(d); - } - } - }, - g.prototype.unstamp = function(a) { - if (a = this._find(a)) { - for (var b = 0, c = a.length; c > b; b++) { - var d = a[b]; - e.removeFrom(this.stamps, d), this.unignore(d); - } - } - }, - g.prototype._find = function(a) { - return a ? ("string" == typeof a && (a = this.element.querySelectorAll(a)), a = e.makeArray(a)) : void 0; - }, - g.prototype._manageStamps = function() { - if (this.stamps && this.stamps.length) { - this._getBoundingRect(); - for (var a = 0, b = this.stamps.length; b > a; a++) { - var c = this.stamps[a]; - this._manageStamp(c); - } - } - }, - g.prototype._getBoundingRect = function() { - var a = this.element.getBoundingClientRect(), b = this.size; - this._boundingRect = { - left: a.left + b.paddingLeft + b.borderLeftWidth, - top: a.top + b.paddingTop + b.borderTopWidth, - right: a.right - (b.paddingRight + b.borderRightWidth), - bottom: a.bottom - (b.paddingBottom + b.borderBottomWidth), - }; - }, - g.prototype._manageStamp = j, - g.prototype._getElementOffset = function(a) { - var b = a.getBoundingClientRect(), - c = this._boundingRect, - e = d(a), - f = { - left: b.left - c.left - e.marginLeft, - top: b.top - c.top - e.marginTop, - right: c.right - b.right - e.marginRight, - bottom: c.bottom - b.bottom - e.marginBottom, - }; - return f; - }, - g.prototype.handleEvent = function(a) { - var b = "on" + a.type; - this[b] && this[b](a); - }, - g.prototype.bindResize = function() { - this.isResizeBound || (b.bind(a, "resize", this), this.isResizeBound = !0); - }, - g.prototype.unbindResize = function() { - this.isResizeBound && b.unbind(a, "resize", this), this.isResizeBound = !1; - }, - g.prototype.onresize = function() { - function a() { - b.resize(), delete b.resizeTimeout; - } - this.resizeTimeout && clearTimeout(this.resizeTimeout); - var b = this; - this.resizeTimeout = setTimeout(a, 100); - }, - g.prototype.resize = function() { - this.isResizeBound && this.needsResizeLayout() && this.layout(); - }, - g.prototype.needsResizeLayout = function() { - var a = d(this.element), b = this.size && a; - return b && a.innerWidth !== this.size.innerWidth; - }, - g.prototype.addItems = function(a) { - var b = this._itemize(a); - return b.length && (this.items = this.items.concat(b)), b; - }, - g.prototype.appended = function(a) { - var b = this.addItems(a); - b.length && (this.layoutItems(b, !0), this.reveal(b)); - }, - g.prototype.prepended = function(a) { - var b = this._itemize(a); - if (b.length) { - var c = this.items.slice(0); - this.items = b.concat(c), - this._resetLayout(), - this._manageStamps(), - this.layoutItems(b, !0), - this.reveal(b), - this.layoutItems(c); - } - }, - g.prototype.reveal = function(a) { - this._emitCompleteOnItems("reveal", a); - for (var b = a && a.length, c = 0; b && b > c; c++) { - var d = a[c]; - d.reveal(); - } - }, - g.prototype.hide = function(a) { - this._emitCompleteOnItems("hide", a); - for (var b = a && a.length, c = 0; b && b > c; c++) { - var d = a[c]; - d.hide(); - } - }, - g.prototype.revealItemElements = function(a) { - var b = this.getItems(a); - this.reveal(b); - }, - g.prototype.hideItemElements = function(a) { - var b = this.getItems(a); - this.hide(b); - }, - g.prototype.getItem = function(a) { - for (var b = 0, c = this.items.length; c > b; b++) { - var d = this.items[b]; - if (d.element === a) return d; - } - }, - g.prototype.getItems = function(a) { - a = e.makeArray(a); - for (var b = [], c = 0, d = a.length; d > c; c++) { - var f = a[c], g = this.getItem(f); - g && b.push(g); - } - return b; - }, - g.prototype.remove = function(a) { - var b = this.getItems(a); - if (this._emitCompleteOnItems("remove", b), b && b.length) { - for (var c = 0, d = b.length; d > c; c++) { - var f = b[c]; - f.remove(), e.removeFrom(this.items, f); - } - } - }, - g.prototype.destroy = function() { - var a = this.element.style; - a.height = "", a.position = "", a.width = ""; - for (var b = 0, c = this.items.length; c > b; b++) { - var d = this.items[b]; - d.destroy(); - } - this.unbindResize(); - var e = this.element.outlayerGUID; - delete l[e], delete this.element.outlayerGUID, i && i.removeData(this.element, this.constructor.namespace); - }, - g.data = function(a) { - a = e.getQueryElement(a); - var b = a && a.outlayerGUID; - return b && l[b]; - }, - g.create = function(a, b) { - function c() { - g.apply(this, arguments); - } - return Object.create ? c.prototype = Object.create(g.prototype) : e.extend(c.prototype, g.prototype), - c.prototype.constructor = c, - c.defaults = e.extend({}, g.defaults), - e.extend(c.defaults, b), - c.prototype.settings = {}, - c.namespace = a, - c.data = g.data, - c.Item = function() { - f.apply(this, arguments); - }, - c.Item.prototype = new f(), - e.htmlInit(c, a), - i && i.bridget && i.bridget(a, c), - c; - }, - g.Item = f, - g; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("isotope/js/item", ["outlayer/outlayer"], b) - : "object" == typeof exports - ? module.exports = b(require("outlayer")) - : (a.Isotope = a.Isotope || {}, a.Isotope.Item = b(a.Outlayer)); - }(window, function(a) { - "use strict"; - function b() { - a.Item.apply(this, arguments); - } - b.prototype = new a.Item(), - b.prototype._create = function() { - this.id = this.layout.itemGUID++, a.Item.prototype._create.call(this), this.sortData = {}; - }, - b.prototype.updateSortData = function() { - if (!this.isIgnored) { - this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random(); - var a = this.layout.options.getSortData, b = this.layout._sorters; - for (var c in a) { - var d = b[c]; - this.sortData[c] = d(this.element, this); - } - } - }; - var c = b.prototype.destroy; - return b.prototype.destroy = function() { - c.apply(this, arguments), this.css({ display: "" }); - }, - b; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("isotope/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], b) - : "object" == typeof exports - ? module.exports = b(require("get-size"), require("outlayer")) - : (a.Isotope = a.Isotope || {}, a.Isotope.LayoutMode = b(a.getSize, a.Outlayer)); - }(window, function(a, b) { - "use strict"; - function c(a) { - this.isotope = a, - a - && (this.options = a.options[this.namespace], - this.element = a.element, - this.items = a.filteredItems, - this.size = a.size); - } - return function() { - function a(a) { - return function() { - return b.prototype[a].apply(this.isotope, arguments); - }; - } - for ( - var d = [ - "_resetLayout", - "_getItemLayoutPosition", - "_manageStamp", - "_getContainerSize", - "_getElementOffset", - "needsResizeLayout", - ], - e = 0, - f = d.length; - f > e; - e++ - ) { - var g = d[e]; - c.prototype[g] = a(g); - } - }(), - c.prototype.needsVerticalResizeLayout = function() { - var b = a(this.isotope.element), c = this.isotope.size && b; - return c && b.innerHeight != this.isotope.size.innerHeight; - }, - c.prototype._getMeasurement = function() { - this.isotope._getMeasurement.apply(this, arguments); - }, - c.prototype.getColumnWidth = function() { - this.getSegmentSize("column", "Width"); - }, - c.prototype.getRowHeight = function() { - this.getSegmentSize("row", "Height"); - }, - c.prototype.getSegmentSize = function(a, b) { - var c = a + b, d = "outer" + b; - if (this._getMeasurement(c, d), !this[c]) { - var e = this.getFirstItemSize(); - this[c] = e && e[d] || this.isotope.size["inner" + b]; - } - }, - c.prototype.getFirstItemSize = function() { - var b = this.isotope.filteredItems[0]; - return b && b.element && a(b.element); - }, - c.prototype.layout = function() { - this.isotope.layout.apply(this.isotope, arguments); - }, - c.prototype.getSize = function() { - this.isotope.getSize(), this.size = this.isotope.size; - }, - c.modes = {}, - c.create = function(a, b) { - function d() { - c.apply(this, arguments); - } - return d.prototype = new c(), b && (d.options = b), d.prototype.namespace = a, c.modes[a] = d, d; - }, - c; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("masonry/masonry", ["outlayer/outlayer", "get-size/get-size", "fizzy-ui-utils/utils"], b) - : "object" == typeof exports - ? module.exports = b(require("outlayer"), require("get-size"), require("fizzy-ui-utils")) - : a.Masonry = b(a.Outlayer, a.getSize, a.fizzyUIUtils); - }(window, function(a, b, c) { - var d = a.create("masonry"); - return d.prototype._resetLayout = function() { - this.getSize(), - this._getMeasurement("columnWidth", "outerWidth"), - this._getMeasurement("gutter", "outerWidth"), - this.measureColumns(); - var a = this.cols; - for (this.colYs = []; a--;) this.colYs.push(0); - this.maxY = 0; - }, - d.prototype.measureColumns = function() { - if (this.getContainerWidth(), !this.columnWidth) { - var a = this.items[0], c = a && a.element; - this.columnWidth = c && b(c).outerWidth || this.containerWidth; - } - var d = this.columnWidth += this.gutter, - e = this.containerWidth + this.gutter, - f = e / d, - g = d - e % d, - h = g && 1 > g ? "round" : "floor"; - f = Math[h](f), this.cols = Math.max(f, 1); - }, - d.prototype.getContainerWidth = function() { - var a = this.options.isFitWidth ? this.element.parentNode : this.element, c = b(a); - this.containerWidth = c && c.innerWidth; - }, - d.prototype._getItemLayoutPosition = function(a) { - a.getSize(); - var b = a.size.outerWidth % this.columnWidth, - d = b && 1 > b ? "round" : "ceil", - e = Math[d](a.size.outerWidth / this.columnWidth); - e = Math.min(e, this.cols); - for ( - var f = this._getColGroup(e), - g = Math.min.apply(Math, f), - h = c.indexOf(f, g), - i = { x: this.columnWidth * h, y: g }, - j = g + a.size.outerHeight, - k = this.cols + 1 - f.length, - l = 0; - k > l; - l++ - ) this.colYs[h + l] = j; - return i; - }, - d.prototype._getColGroup = function(a) { - if (2 > a) return this.colYs; - for (var b = [], c = this.cols + 1 - a, d = 0; c > d; d++) { - var e = this.colYs.slice(d, d + a); - b[d] = Math.max.apply(Math, e); - } - return b; - }, - d.prototype._manageStamp = function(a) { - var c = b(a), - d = this._getElementOffset(a), - e = this.options.isOriginLeft ? d.left : d.right, - f = e + c.outerWidth, - g = Math.floor(e / this.columnWidth); - g = Math.max(0, g); - var h = Math.floor(f / this.columnWidth); - h -= f % this.columnWidth ? 0 : 1, h = Math.min(this.cols - 1, h); - for (var i = (this.options.isOriginTop ? d.top : d.bottom) + c.outerHeight, j = g; h >= j; j++) { - this.colYs[j] = Math.max(i, this.colYs[j]); - } - }, - d.prototype._getContainerSize = function() { - this.maxY = Math.max.apply(Math, this.colYs); - var a = { height: this.maxY }; - return this.options.isFitWidth && (a.width = this._getContainerFitWidth()), a; - }, - d.prototype._getContainerFitWidth = function() { - for (var a = 0, b = this.cols; --b && 0 === this.colYs[b];) a++; - return (this.cols - a) * this.columnWidth - this.gutter; - }, - d.prototype.needsResizeLayout = function() { - var a = this.containerWidth; - return this.getContainerWidth(), a !== this.containerWidth; - }, - d; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("isotope/js/layout-modes/masonry", ["../layout-mode", "masonry/masonry"], b) - : "object" == typeof exports - ? module.exports = b(require("../layout-mode"), require("masonry-layout")) - : b(a.Isotope.LayoutMode, a.Masonry); - }(window, function(a, b) { - "use strict"; - function c(a, b) { - for (var c in b) a[c] = b[c]; - return a; - } - var d = a.create("masonry"), - e = d.prototype._getElementOffset, - f = d.prototype.layout, - g = d.prototype._getMeasurement; - c(d.prototype, b.prototype), - d.prototype._getElementOffset = e, - d.prototype.layout = f, - d.prototype._getMeasurement = g; - var h = d.prototype.measureColumns; - d.prototype.measureColumns = function() { - this.items = this.isotope.filteredItems, h.call(this); - }; - var i = d.prototype._manageStamp; - return d.prototype._manageStamp = function() { - this.options.isOriginLeft = this.isotope.options.isOriginLeft, - this.options.isOriginTop = this.isotope.options.isOriginTop, - i.apply(this, arguments); - }, - d; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("isotope/js/layout-modes/fit-rows", ["../layout-mode"], b) - : "object" == typeof exports - ? module.exports = b(require("../layout-mode")) - : b(a.Isotope.LayoutMode); - }(window, function(a) { - "use strict"; - var b = a.create("fitRows"); - return b.prototype._resetLayout = function() { - this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth"); - }, - b.prototype._getItemLayoutPosition = function(a) { - a.getSize(); - var b = a.size.outerWidth + this.gutter, c = this.isotope.size.innerWidth + this.gutter; - 0 !== this.x && b + this.x > c && (this.x = 0, this.y = this.maxY); - var d = { x: this.x, y: this.y }; - return this.maxY = Math.max(this.maxY, this.y + a.size.outerHeight), this.x += b, d; - }, - b.prototype._getContainerSize = function() { - return { height: this.maxY }; - }, - b; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define("isotope/js/layout-modes/vertical", ["../layout-mode"], b) - : "object" == typeof exports - ? module.exports = b(require("../layout-mode")) - : b(a.Isotope.LayoutMode); - }(window, function(a) { - "use strict"; - var b = a.create("vertical", { horizontalAlignment: 0 }); - return b.prototype._resetLayout = function() { - this.y = 0; - }, - b.prototype._getItemLayoutPosition = function(a) { - a.getSize(); - var b = (this.isotope.size.innerWidth - a.size.outerWidth) * this.options.horizontalAlignment, c = this.y; - return this.y += a.size.outerHeight, { x: b, y: c }; - }, - b.prototype._getContainerSize = function() { - return { height: this.y }; - }, - b; - }), - function(a, b) { - "use strict"; - "function" == typeof define && define.amd - ? define([ - "outlayer/outlayer", - "get-size/get-size", - "matches-selector/matches-selector", - "fizzy-ui-utils/utils", - "isotope/js/item", - "isotope/js/layout-mode", - "isotope/js/layout-modes/masonry", - "isotope/js/layout-modes/fit-rows", - "isotope/js/layout-modes/vertical", - ], function(c, d, e, f, g, h) { - return b(a, c, d, e, f, g, h); - }) - : "object" == typeof exports - ? module.exports = b( - a, - require("outlayer"), - require("get-size"), - require("desandro-matches-selector"), - require("fizzy-ui-utils"), - require("./item"), - require("./layout-mode"), - require("./layout-modes/masonry"), - require("./layout-modes/fit-rows"), - require("./layout-modes/vertical"), - ) - : a.Isotope = b( - a, - a.Outlayer, - a.getSize, - a.matchesSelector, - a.fizzyUIUtils, - a.Isotope.Item, - a.Isotope.LayoutMode, - ); - }(window, function(a, b, c, d, e, f, g) { - function h(a, b) { - return function(c, d) { - for (var e = 0, f = a.length; f > e; e++) { - var g = a[e], h = c.sortData[g], i = d.sortData[g]; - if (h > i || i > h) { - var j = void 0 !== b[g] ? b[g] : b, k = j ? 1 : -1; - return (h > i ? 1 : -1) * k; - } - } - return 0; - }; - } - var i = a.jQuery, - j = String.prototype.trim - ? function(a) { - return a.trim(); - } - : function(a) { - return a.replace(/^\s+|\s+$/g, ""); - }, - k = document.documentElement, - l = k.textContent - ? function(a) { - return a.textContent; - } - : function(a) { - return a.innerText; - }, - m = b.create("isotope", { layoutMode: "masonry", isJQueryFiltering: !0, sortAscending: !0 }); - m.Item = f, - m.LayoutMode = g, - m.prototype._create = function() { - this.itemGUID = 0, - this._sorters = {}, - this._getSorters(), - b.prototype._create.call(this), - this.modes = {}, - this.filteredItems = this.items, - this.sortHistory = ["original-order"]; - for (var a in g.modes) this._initLayoutMode(a); - }, - m.prototype.reloadItems = function() { - this.itemGUID = 0, b.prototype.reloadItems.call(this); - }, - m.prototype._itemize = function() { - for (var a = b.prototype._itemize.apply(this, arguments), c = 0, d = a.length; d > c; c++) { - var e = a[c]; - e.id = this.itemGUID++; - } - return this._updateItemsSortData(a), a; - }, - m.prototype._initLayoutMode = function(a) { - var b = g.modes[a], c = this.options[a] || {}; - this.options[a] = b.options ? e.extend(b.options, c) : c, this.modes[a] = new b(this); - }, - m.prototype.layout = function() { - return !this._isLayoutInited && this.options.isInitLayout ? void this.arrange() : void this._layout(); - }, - m.prototype._layout = function() { - var a = this._getIsInstant(); - this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, a), this._isLayoutInited = !0; - }, - m.prototype.arrange = function(a) { - function b() { - d.reveal(c.needReveal), d.hide(c.needHide); - } - this.option(a), this._getIsInstant(); - var c = this._filter(this.items); - this.filteredItems = c.matches; - var d = this; - this._bindArrangeComplete(), this._isInstant ? this._noTransition(b) : b(), this._sort(), this._layout(); - }, - m.prototype._init = m.prototype.arrange, - m.prototype._getIsInstant = function() { - var a = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited; - return this._isInstant = a, a; - }, - m.prototype._bindArrangeComplete = function() { - function a() { - b && c && d && e.dispatchEvent("arrangeComplete", null, [e.filteredItems]); - } - var b, c, d, e = this; - this.once("layoutComplete", function() { - b = !0, a(); - }), - this.once("hideComplete", function() { - c = !0, a(); - }), - this.once("revealComplete", function() { - d = !0, a(); - }); - }, - m.prototype._filter = function(a) { - var b = this.options.filter; - b = b || "*"; - for (var c = [], d = [], e = [], f = this._getFilterTest(b), g = 0, h = a.length; h > g; g++) { - var i = a[g]; - if (!i.isIgnored) { - var j = f(i); - j && c.push(i), j && i.isHidden ? d.push(i) : j || i.isHidden || e.push(i); - } - } - return { matches: c, needReveal: d, needHide: e }; - }, - m.prototype._getFilterTest = function(a) { - return i && this.options.isJQueryFiltering - ? function(b) { - return i(b.element).is(a); - } - : "function" == typeof a - ? function(b) { - return a(b.element); - } - : function(b) { - return d(b.element, a); - }; - }, - m.prototype.updateSortData = function(a) { - var b; - a ? (a = e.makeArray(a), b = this.getItems(a)) : b = this.items, - this._getSorters(), - this._updateItemsSortData(b); - }, - m.prototype._getSorters = function() { - var a = this.options.getSortData; - for (var b in a) { - var c = a[b]; - this._sorters[b] = n(c); - } - }, - m.prototype._updateItemsSortData = function(a) { - for (var b = a && a.length, c = 0; b && b > c; c++) { - var d = a[c]; - d.updateSortData(); - } - }; - var n = function() { - function a(a) { - if ("string" != typeof a) return a; - var c = j(a).split(" "), - d = c[0], - e = d.match(/^\[(.+)\]$/), - f = e && e[1], - g = b(f, d), - h = m.sortDataParsers[c[1]]; - return a = h - ? function(a) { - return a && h(g(a)); - } - : function(a) { - return a && g(a); - }; - } - function b(a, b) { - var c; - return c = a - ? function(b) { - return b.getAttribute(a); - } - : function(a) { - var c = a.querySelector(b); - return c && l(c); - }; - } - return a; - }(); - m.sortDataParsers = { - parseInt: function(a) { - return parseInt(a, 10); - }, - parseFloat: function(a) { - return parseFloat(a); - }, - }, - m.prototype._sort = function() { - var a = this.options.sortBy; - if (a) { - var b = [].concat.apply(a, this.sortHistory), c = h(b, this.options.sortAscending); - this.filteredItems.sort(c), a != this.sortHistory[0] && this.sortHistory.unshift(a); - } - }, - m.prototype._mode = function() { - var a = this.options.layoutMode, b = this.modes[a]; - if (!b) throw new Error("No layout mode: " + a); - return b.options = this.options[a], b; - }, - m.prototype._resetLayout = function() { - b.prototype._resetLayout.call(this), this._mode()._resetLayout(); - }, - m.prototype._getItemLayoutPosition = function(a) { - return this._mode()._getItemLayoutPosition(a); - }, - m.prototype._manageStamp = function(a) { - this._mode()._manageStamp(a); - }, - m.prototype._getContainerSize = function() { - return this._mode()._getContainerSize(); - }, - m.prototype.needsResizeLayout = function() { - return this._mode().needsResizeLayout(); - }, - m.prototype.appended = function(a) { - var b = this.addItems(a); - if (b.length) { - var c = this._filterRevealAdded(b); - this.filteredItems = this.filteredItems.concat(c); - } - }, - m.prototype.prepended = function(a) { - var b = this._itemize(a); - if (b.length) { - this._resetLayout(), this._manageStamps(); - var c = this._filterRevealAdded(b); - this.layoutItems(this.filteredItems), - this.filteredItems = c.concat(this.filteredItems), - this.items = b.concat(this.items); - } - }, - m.prototype._filterRevealAdded = function(a) { - var b = this._filter(a); - return this.hide(b.needHide), this.reveal(b.matches), this.layoutItems(b.matches, !0), b.matches; - }, - m.prototype.insert = function(a) { - var b = this.addItems(a); - if (b.length) { - var c, d, e = b.length; - for (c = 0; e > c; c++) d = b[c], this.element.appendChild(d.element); - var f = this._filter(b).matches; - for (c = 0; e > c; c++) b[c].isLayoutInstant = !0; - for (this.arrange(), c = 0; e > c; c++) delete b[c].isLayoutInstant; - this.reveal(f); - } - }; - var o = m.prototype.remove; - return m.prototype.remove = function(a) { - a = e.makeArray(a); - var b = this.getItems(a); - o.call(this, a); - var c = b && b.length; - if (c) { - for (var d = 0; c > d; d++) { - var f = b[d]; - e.removeFrom(this.filteredItems, f); - } - } - }, - m.prototype.shuffle = function() { - for (var a = 0, b = this.items.length; b > a; a++) { - var c = this.items[a]; - c.sortData.random = Math.random(); - } - this.options.sortBy = "random", this._sort(), this._layout(); - }, - m.prototype._noTransition = function(a) { - var b = this.options.transitionDuration; - this.options.transitionDuration = 0; - var c = a.call(this); - return this.options.transitionDuration = b, c; - }, - m.prototype.getFilteredItemElements = function() { - for (var a = [], b = 0, c = this.filteredItems.length; c > b; b++) a.push(this.filteredItems[b].element); - return a; - }, - m; - }); - -/*! -* jquery.counterup.js 1.0 -* -* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal -* Released under the GPL v2 License -* -* Date: Nov 26, 2013 -*/ (function(e) { - "use strict"; - e.fn.counterUp = function(t) { - var n = e.extend({ time: 400, delay: 10 }, t); - return this.each(function() { - var t = e(this), - r = n, - i = function() { - var e = [], n = r.time / r.delay, i = t.text(), s = /[0-9]+,[0-9]+/.test(i); - i = i.replace(/,/g, ""); - var o = /^[0-9]+$/.test(i), u = /^[0-9]+\.[0-9]+$/.test(i), a = u ? (i.split(".")[1] || []).length : 0; - for (var f = n; f >= 1; f--) { - var l = parseInt(i / n * f); - u && (l = parseFloat(i / n * f).toFixed(a)); - if (s) while (/(\d+)(\d{3})/.test(l.toString())) l = l.toString().replace(/(\d+)(\d{3})/, "$1,$2"); - e.unshift(l); - } - t.data("counterup-nums", e); - t.text("0"); - var c = function() { - t.text(t.data("counterup-nums").shift()); - if (t.data("counterup-nums").length) setTimeout(t.data("counterup-func"), r.delay); - else { - delete t.data("counterup-nums"); - t.data("counterup-nums", null); - t.data("counterup-func", null); - } - }; - t.data("counterup-func", c); - setTimeout(t.data("counterup-func"), r.delay); - }; - t.waypoint(i, { offset: "100%", triggerOnce: !0 }); - }); - }; -})(jQuery); - -/* - * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ - * - * Uses the built in easing capabilities added In jQuery 1.1 - * to offer multiple easing options - * - * TERMS OF USE - EASING EQUATIONS - * - * Open source under the BSD License. - * - * Copyright © 2001 Robert Penner - * All rights reserved. - * - * TERMS OF USE - jQuery Easing - * - * Open source under the BSD License. - * - * Copyright © 2008 George McGinley Smith - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of contributors may be used to endorse - * or promote products derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - */ -jQuery.easing.jswing = jQuery.easing.swing; -jQuery.extend(jQuery.easing, { - def: "easeOutQuad", - swing: function(e, f, a, h, g) { - return jQuery.easing[jQuery.easing.def](e, f, a, h, g); - }, - easeInQuad: function(e, f, a, h, g) { - return h * (f /= g) * f + a; - }, - easeOutQuad: function(e, f, a, h, g) { - return -h * (f /= g) * (f - 2) + a; - }, - easeInOutQuad: function(e, f, a, h, g) { - if ((f /= g / 2) < 1) return h / 2 * f * f + a; - return -h / 2 * ((--f) * (f - 2) - 1) + a; - }, - easeInCubic: function(e, f, a, h, g) { - return h * (f /= g) * f * f + a; - }, - easeOutCubic: function(e, f, a, h, g) { - return h * ((f = f / g - 1) * f * f + 1) + a; - }, - easeInOutCubic: function(e, f, a, h, g) { - if ((f /= g / 2) < 1) return h / 2 * f * f * f + a; - return h / 2 * ((f -= 2) * f * f + 2) + a; - }, - easeInQuart: function(e, f, a, h, g) { - return h * (f /= g) * f * f * f + a; - }, - easeOutQuart: function(e, f, a, h, g) { - return -h * ((f = f / g - 1) * f * f * f - 1) + a; - }, - easeInOutQuart: function(e, f, a, h, g) { - if ((f /= g / 2) < 1) return h / 2 * f * f * f * f + a; - return -h / 2 * ((f -= 2) * f * f * f - 2) + a; - }, - easeInQuint: function(e, f, a, h, g) { - return h * (f /= g) * f * f * f * f + a; - }, - easeOutQuint: function(e, f, a, h, g) { - return h * ((f = f / g - 1) * f * f * f * f + 1) + a; - }, - easeInOutQuint: function(e, f, a, h, g) { - if ((f /= g / 2) < 1) return h / 2 * f * f * f * f * f + a; - return h / 2 * ((f -= 2) * f * f * f * f + 2) + a; - }, - easeInSine: function(e, f, a, h, g) { - return -h * Math.cos(f / g * (Math.PI / 2)) + h + a; - }, - easeOutSine: function(e, f, a, h, g) { - return h * Math.sin(f / g * (Math.PI / 2)) + a; - }, - easeInOutSine: function(e, f, a, h, g) { - return -h / 2 * (Math.cos(Math.PI * f / g) - 1) + a; - }, - easeInExpo: function(e, f, a, h, g) { - return (f == 0) ? a : h * Math.pow(2, 10 * (f / g - 1)) + a; - }, - easeOutExpo: function(e, f, a, h, g) { - return (f == g) ? a + h : h * (-Math.pow(2, -10 * f / g) + 1) + a; - }, - easeInOutExpo: function(e, f, a, h, g) { - if (f == 0) return a; - if (f == g) return a + h; - if ((f /= g / 2) < 1) return h / 2 * Math.pow(2, 10 * (f - 1)) + a; - return h / 2 * (-Math.pow(2, -10 * --f) + 2) + a; - }, - easeInCirc: function(e, f, a, h, g) { - return -h * (Math.sqrt(1 - (f /= g) * f) - 1) + a; - }, - easeOutCirc: function(e, f, a, h, g) { - return h * Math.sqrt(1 - (f = f / g - 1) * f) + a; - }, - easeInOutCirc: function(e, f, a, h, g) { - if ((f /= g / 2) < 1) return -h / 2 * (Math.sqrt(1 - f * f) - 1) + a; - return h / 2 * (Math.sqrt(1 - (f -= 2) * f) + 1) + a; - }, - easeInElastic: function(f, h, e, l, k) { - var i = 1.70158; - var j = 0; - var g = l; - if (h == 0) return e; - if ((h /= k) == 1) return e + l; - if (!j) j = k * 0.3; - if (g < Math.abs(l)) { - g = l; - var i = j / 4; - } else var i = j / (2 * Math.PI) * Math.asin(l / g); - return -(g * Math.pow(2, 10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j)) + e; - }, - easeOutElastic: function(f, h, e, l, k) { - var i = 1.70158; - var j = 0; - var g = l; - if (h == 0) return e; - if ((h /= k) == 1) return e + l; - if (!j) j = k * 0.3; - if (g < Math.abs(l)) { - g = l; - var i = j / 4; - } else var i = j / (2 * Math.PI) * Math.asin(l / g); - return g * Math.pow(2, -10 * h) * Math.sin((h * k - i) * (2 * Math.PI) / j) + l + e; - }, - easeInOutElastic: function(f, h, e, l, k) { - var i = 1.70158; - var j = 0; - var g = l; - if (h == 0) return e; - if ((h /= k / 2) == 2) return e + l; - if (!j) j = k * (0.3 * 1.5); - if (g < Math.abs(l)) { - g = l; - var i = j / 4; - } else var i = j / (2 * Math.PI) * Math.asin(l / g); - if (h < 1) return -0.5 * (g * Math.pow(2, 10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j)) + e; - return g * Math.pow(2, -10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j) * 0.5 + l + e; - }, - easeInBack: function(e, f, a, i, h, g) { - if (g == undefined) g = 1.70158; - return i * (f /= h) * f * ((g + 1) * f - g) + a; - }, - easeOutBack: function(e, f, a, i, h, g) { - if (g == undefined) g = 1.70158; - return i * ((f = f / h - 1) * f * ((g + 1) * f + g) + 1) + a; - }, - easeInOutBack: function(e, f, a, i, h, g) { - if (g == undefined) g = 1.70158; - if ((f /= h / 2) < 1) return i / 2 * (f * f * (((g *= 1.525) + 1) * f - g)) + a; - return i / 2 * ((f -= 2) * f * (((g *= 1.525) + 1) * f + g) + 2) + a; - }, - easeInBounce: function(e, f, a, h, g) { - return h - jQuery.easing.easeOutBounce(e, g - f, 0, h, g) + a; - }, - easeOutBounce: function(e, f, a, h, g) { - if ((f /= g) < (1 / 2.75)) return h * (7.5625 * f * f) + a; - else {if (f < (2 / 2.75)) return h * (7.5625 * (f -= 1.5 / 2.75) * f + 0.75) + a; - else {if (f < (2.5 / 2.75)) return h * (7.5625 * (f -= 2.25 / 2.75) * f + 0.9375) + a; - else return h * (7.5625 * (f -= 2.625 / 2.75) * f + 0.984375) + a;}} - }, - easeInOutBounce: function(e, f, a, h, g) { - if (f < g / 2) return jQuery.easing.easeInBounce(e, f * 2, 0, h, g) * 0.5 + a; - return jQuery.easing.easeOutBounce(e, f * 2 - g, 0, h, g) * 0.5 + h * 0.5 + a; - }, -}); - -// CountDown Clock -// Version : 1.0.1 -// Developer : Ekrem KAYA -// Website : http://e-piksel.com -// GitHub : https://github.com/epiksel/countdown - -!function(t) { - t.fn.countdown = function(e, n) { - function o() { - var t = new Date(r.date), e = s(), o = t - e; - if (0 > o) return clearInterval(d), void (n && "function" == typeof n && n()); - var a = 1e3, - f = 60 * a, - u = 60 * f, - l = 24 * u, - c = Math.floor(o / l), - h = Math.floor(o % l / u), - x = Math.floor(o % u / f), - g = Math.floor(o % f / a), - y = 1 === c ? r.day : r.days, - m = 1 === h ? r.hour : r.hours, - v = 1 === x ? r.minute : r.minutes, - D = 1 === g ? r.second : r.seconds; - c = String(c).length >= 2 ? c : "0" + c, - h = String(h).length >= 2 ? h : "0" + h, - x = String(x).length >= 2 ? x : "0" + x, - g = String(g).length >= 2 ? g : "0" + g, - i.find(".days").text(c), - i.find(".hours").text(h), - i.find(".minutes").text(x), - i.find(".seconds").text(g), - i.find(".days_text").text(y), - i.find(".hours_text").text(m), - i.find(".minutes_text").text(v), - i.find(".seconds_text").text(D); - } - var r = t.extend({ - date: null, - offset: null, - day: "Day", - days: "Days", - hour: "Hour", - hours: "Hours", - minute: "Minute", - minutes: "Mins", - second: "Sec", - seconds: "Secs", - }, e); - r.date || t.error("Date is not defined."), - Date.parse(r.date) || t.error("Incorrect date format, it should look like this, 12/24/2012 12:00:00."); - var i = this, - s = function() { - var t = new Date(), e = t.getTime() + 6e4 * t.getTimezoneOffset(), n = new Date(e + 36e5 * r.offset); - return n; - }, - d = setInterval(o, 1e3); - }; -}(jQuery); +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("
");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'
',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'
',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()}); + + + + +// Generated by CoffeeScript 1.6.2 +/* +jQuery Waypoints - v2.0.3 +Copyright (c) 2011-2013 Caleb Troughton +Dual licensed under the MIT license and GPL license. +https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt +*/ +(function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e=0;s={horizontal:{},vertical:{}};f=1;a={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};t.data(u,this.id);a[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||c)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(c&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete a[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=t.data(w))!=null?o:[];i.push(this.id);t.data(w,i)}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=n(t).data(w);if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=a[i.data(u)];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(et.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=a[n(t).data(u)];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this); + + + +/*! + * imagesLoaded PACKAGED v4.1.1 + * JavaScript is all like "You images are done yet or what?" + * MIT License + */ + +!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}(window,function(t,e){function i(t,e){for(var i in e)t[i]=e[i];return t}function n(t){var e=[];if(Array.isArray(t))e=t;else if("number"==typeof t.length)for(var i=0;ih;h++){var j=this[h],k=a.data(j,b);if(k)if(a.isFunction(k[e])&&"_"!==e.charAt(0)){var l=k[e].apply(k,g);if(void 0!==l)return l}else f("no such method '"+e+"' for "+b+" instance");else f("cannot call methods on "+b+" prior to initialization; attempted to call '"+e+"'")}return this}return this.each(function(){var d=a.data(this,b);d?(d.option(e),d._init()):(d=new c(this,e),a.data(this,b,d))})}}if(a){var f="undefined"==typeof console?b:function(a){console.error(a)};return a.bridget=function(a,b){c(b),e(a,b)},a.bridget}}var d=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],c):c("object"==typeof exports?require("jquery"):a.jQuery)}(window),function(a){function b(b){var c=a.event;return c.target=c.target||c.srcElement||b,c}var c=document.documentElement,d=function(){};c.addEventListener?d=function(a,b,c){a.addEventListener(b,c,!1)}:c.attachEvent&&(d=function(a,c,d){a[c+d]=d.handleEvent?function(){var c=b(a);d.handleEvent.call(d,c)}:function(){var c=b(a);d.call(a,c)},a.attachEvent("on"+c,a[c+d])});var e=function(){};c.removeEventListener?e=function(a,b,c){a.removeEventListener(b,c,!1)}:c.detachEvent&&(e=function(a,b,c){a.detachEvent("on"+b,a[b+c]);try{delete a[b+c]}catch(d){a[b+c]=void 0}});var f={bind:d,unbind:e};"function"==typeof define&&define.amd?define("eventie/eventie",f):"object"==typeof exports?module.exports=f:a.eventie=f}(window),function(){"use strict";function a(){}function b(a,b){for(var c=a.length;c--;)if(a[c].listener===b)return c;return-1}function c(a){return function(){return this[a].apply(this,arguments)}}var d=a.prototype,e=this,f=e.EventEmitter;d.getListeners=function(a){var b,c,d=this._getEvents();if(a instanceof RegExp){b={};for(c in d)d.hasOwnProperty(c)&&a.test(c)&&(b[c]=d[c])}else b=d[a]||(d[a]=[]);return b},d.flattenListeners=function(a){var b,c=[];for(b=0;be;e++)if(b=c[e]+a,"string"==typeof d[b])return b}}var c="Webkit Moz ms Ms O".split(" "),d=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return b}):"object"==typeof exports?module.exports=b:a.getStyleProperty=b}(window),function(a,b){function c(a){var b=parseFloat(a),c=-1===a.indexOf("%")&&!isNaN(b);return c&&b}function d(){}function e(){for(var a={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},b=0,c=h.length;c>b;b++){var d=h[b];a[d]=0}return a}function f(b){function d(){if(!m){m=!0;var d=a.getComputedStyle;if(j=function(){var a=d?function(a){return d(a,null)}:function(a){return a.currentStyle};return function(b){var c=a(b);return c||g("Style returned "+c+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),c}}(),k=b("boxSizing")){var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style[k]="border-box";var f=document.body||document.documentElement;f.appendChild(e);var h=j(e);l=200===c(h.width),f.removeChild(e)}}}function f(a){if(d(),"string"==typeof a&&(a=document.querySelector(a)),a&&"object"==typeof a&&a.nodeType){var b=j(a);if("none"===b.display)return e();var f={};f.width=a.offsetWidth,f.height=a.offsetHeight;for(var g=f.isBorderBox=!(!k||!b[k]||"border-box"!==b[k]),m=0,n=h.length;n>m;m++){var o=h[m],p=b[o];p=i(a,p);var q=parseFloat(p);f[o]=isNaN(q)?0:q}var r=f.paddingLeft+f.paddingRight,s=f.paddingTop+f.paddingBottom,t=f.marginLeft+f.marginRight,u=f.marginTop+f.marginBottom,v=f.borderLeftWidth+f.borderRightWidth,w=f.borderTopWidth+f.borderBottomWidth,x=g&&l,y=c(b.width);y!==!1&&(f.width=y+(x?0:r+v));var z=c(b.height);return z!==!1&&(f.height=z+(x?0:s+w)),f.innerWidth=f.width-(r+v),f.innerHeight=f.height-(s+w),f.outerWidth=f.width+t,f.outerHeight=f.height+u,f}}function i(b,c){if(a.getComputedStyle||-1===c.indexOf("%"))return c;var d=b.style,e=d.left,f=b.runtimeStyle,g=f&&f.left;return g&&(f.left=b.currentStyle.left),d.left=c,c=d.pixelLeft,d.left=e,g&&(f.left=g),c}var j,k,l,m=!1;return f}var g="undefined"==typeof console?d:function(a){console.error(a)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];"function"==typeof define&&define.amd?define("get-size/get-size",["get-style-property/get-style-property"],f):"object"==typeof exports?module.exports=f(require("desandro-get-style-property")):a.getSize=f(a.getStyleProperty)}(window),function(a){function b(a){"function"==typeof a&&(b.isReady?a():g.push(a))}function c(a){var c="readystatechange"===a.type&&"complete"!==f.readyState;b.isReady||c||d()}function d(){b.isReady=!0;for(var a=0,c=g.length;c>a;a++){var d=g[a];d()}}function e(e){return"complete"===f.readyState?d():(e.bind(f,"DOMContentLoaded",c),e.bind(f,"readystatechange",c),e.bind(a,"load",c)),b}var f=a.document,g=[];b.isReady=!1,"function"==typeof define&&define.amd?define("doc-ready/doc-ready",["eventie/eventie"],e):"object"==typeof exports?module.exports=e(require("eventie")):a.docReady=e(a.eventie)}(window),function(a){"use strict";function b(a,b){return a[g](b)}function c(a){if(!a.parentNode){var b=document.createDocumentFragment();b.appendChild(a)}}function d(a,b){c(a);for(var d=a.parentNode.querySelectorAll(b),e=0,f=d.length;f>e;e++)if(d[e]===a)return!0;return!1}function e(a,d){return c(a),b(a,d)}var f,g=function(){if(a.matches)return"matches";if(a.matchesSelector)return"matchesSelector";for(var b=["webkit","moz","ms","o"],c=0,d=b.length;d>c;c++){var e=b[c],f=e+"MatchesSelector";if(a[f])return f}}();if(g){var h=document.createElement("div"),i=b(h,"div");f=i?b:e}else f=d;"function"==typeof define&&define.amd?define("matches-selector/matches-selector",[],function(){return f}):"object"==typeof exports?module.exports=f:window.matchesSelector=f}(Element.prototype),function(a,b){"use strict";"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["doc-ready/doc-ready","matches-selector/matches-selector"],function(c,d){return b(a,c,d)}):"object"==typeof exports?module.exports=b(a,require("doc-ready"),require("desandro-matches-selector")):a.fizzyUIUtils=b(a,a.docReady,a.matchesSelector)}(window,function(a,b,c){var d={};d.extend=function(a,b){for(var c in b)a[c]=b[c];return a},d.modulo=function(a,b){return(a%b+b)%b};var e=Object.prototype.toString;d.isArray=function(a){return"[object Array]"==e.call(a)},d.makeArray=function(a){var b=[];if(d.isArray(a))b=a;else if(a&&"number"==typeof a.length)for(var c=0,e=a.length;e>c;c++)b.push(a[c]);else b.push(a);return b},d.indexOf=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},d.removeFrom=function(a,b){var c=d.indexOf(a,b);-1!=c&&a.splice(c,1)},d.isElement="function"==typeof HTMLElement||"object"==typeof HTMLElement?function(a){return a instanceof HTMLElement}:function(a){return a&&"object"==typeof a&&1==a.nodeType&&"string"==typeof a.nodeName},d.setText=function(){function a(a,c){b=b||(void 0!==document.documentElement.textContent?"textContent":"innerText"),a[b]=c}var b;return a}(),d.getParent=function(a,b){for(;a!=document.body;)if(a=a.parentNode,c(a,b))return a},d.getQueryElement=function(a){return"string"==typeof a?document.querySelector(a):a},d.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},d.filterFindElements=function(a,b){a=d.makeArray(a);for(var e=[],f=0,g=a.length;g>f;f++){var h=a[f];if(d.isElement(h))if(b){c(h,b)&&e.push(h);for(var i=h.querySelectorAll(b),j=0,k=i.length;k>j;j++)e.push(i[j])}else e.push(h)}return e},d.debounceMethod=function(a,b,c){var d=a.prototype[b],e=b+"Timeout";a.prototype[b]=function(){var a=this[e];a&&clearTimeout(a);var b=arguments,f=this;this[e]=setTimeout(function(){d.apply(f,b),delete f[e]},c||100)}},d.toDashed=function(a){return a.replace(/(.)([A-Z])/g,function(a,b,c){return b+"-"+c}).toLowerCase()};var f=a.console;return d.htmlInit=function(c,e){b(function(){for(var b=d.toDashed(e),g=document.querySelectorAll(".js-"+b),h="data-"+b+"-options",i=0,j=g.length;j>i;i++){var k,l=g[i],m=l.getAttribute(h);try{k=m&&JSON.parse(m)}catch(n){f&&f.error("Error parsing "+h+" on "+l.nodeName.toLowerCase()+(l.id?"#"+l.id:"")+": "+n);continue}var o=new c(l,k),p=a.jQuery;p&&p.data(l,e,o)}})},d}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("outlayer/item",["eventEmitter/EventEmitter","get-size/get-size","get-style-property/get-style-property","fizzy-ui-utils/utils"],function(c,d,e,f){return b(a,c,d,e,f)}):"object"==typeof exports?module.exports=b(a,require("wolfy87-eventemitter"),require("get-size"),require("desandro-get-style-property"),require("fizzy-ui-utils")):(a.Outlayer={},a.Outlayer.Item=b(a,a.EventEmitter,a.getSize,a.getStyleProperty,a.fizzyUIUtils))}(window,function(a,b,c,d,e){"use strict";function f(a){for(var b in a)return!1;return b=null,!0}function g(a,b){a&&(this.element=a,this.layout=b,this.position={x:0,y:0},this._create())}function h(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}var i=a.getComputedStyle,j=i?function(a){return i(a,null)}:function(a){return a.currentStyle},k=d("transition"),l=d("transform"),m=k&&l,n=!!d("perspective"),o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"}[k],p=["transform","transition","transitionDuration","transitionProperty"],q=function(){for(var a={},b=0,c=p.length;c>b;b++){var e=p[b],f=d(e);f&&f!==e&&(a[e]=f)}return a}();e.extend(g.prototype,b.prototype),g.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},g.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},g.prototype.getSize=function(){this.size=c(this.element)},g.prototype.css=function(a){var b=this.element.style;for(var c in a){var d=q[c]||c;b[d]=a[c]}},g.prototype.getPosition=function(){var a=j(this.element),b=this.layout.options,c=b.isOriginLeft,d=b.isOriginTop,e=a[c?"left":"right"],f=a[d?"top":"bottom"],g=this.layout.size,h=-1!=e.indexOf("%")?parseFloat(e)/100*g.width:parseInt(e,10),i=-1!=f.indexOf("%")?parseFloat(f)/100*g.height:parseInt(f,10);h=isNaN(h)?0:h,i=isNaN(i)?0:i,h-=c?g.paddingLeft:g.paddingRight,i-=d?g.paddingTop:g.paddingBottom,this.position.x=h,this.position.y=i},g.prototype.layoutPosition=function(){var a=this.layout.size,b=this.layout.options,c={},d=b.isOriginLeft?"paddingLeft":"paddingRight",e=b.isOriginLeft?"left":"right",f=b.isOriginLeft?"right":"left",g=this.position.x+a[d];c[e]=this.getXValue(g),c[f]="";var h=b.isOriginTop?"paddingTop":"paddingBottom",i=b.isOriginTop?"top":"bottom",j=b.isOriginTop?"bottom":"top",k=this.position.y+a[h];c[i]=this.getYValue(k),c[j]="",this.css(c),this.emitEvent("layout",[this])},g.prototype.getXValue=function(a){var b=this.layout.options;return b.percentPosition&&!b.isHorizontal?a/this.layout.size.width*100+"%":a+"px"},g.prototype.getYValue=function(a){var b=this.layout.options;return b.percentPosition&&b.isHorizontal?a/this.layout.size.height*100+"%":a+"px"},g.prototype._transitionTo=function(a,b){this.getPosition();var c=this.position.x,d=this.position.y,e=parseInt(a,10),f=parseInt(b,10),g=e===this.position.x&&f===this.position.y;if(this.setPosition(a,b),g&&!this.isTransitioning)return void this.layoutPosition();var h=a-c,i=b-d,j={};j.transform=this.getTranslate(h,i),this.transition({to:j,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},g.prototype.getTranslate=function(a,b){var c=this.layout.options;return a=c.isOriginLeft?a:-a,b=c.isOriginTop?b:-b,n?"translate3d("+a+"px, "+b+"px, 0)":"translate("+a+"px, "+b+"px)"},g.prototype.goTo=function(a,b){this.setPosition(a,b),this.layoutPosition()},g.prototype.moveTo=m?g.prototype._transitionTo:g.prototype.goTo,g.prototype.setPosition=function(a,b){this.position.x=parseInt(a,10),this.position.y=parseInt(b,10)},g.prototype._nonTransition=function(a){this.css(a.to),a.isCleaning&&this._removeStyles(a.to);for(var b in a.onTransitionEnd)a.onTransitionEnd[b].call(this)},g.prototype._transition=function(a){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(a);var b=this._transn;for(var c in a.onTransitionEnd)b.onEnd[c]=a.onTransitionEnd[c];for(c in a.to)b.ingProperties[c]=!0,a.isCleaning&&(b.clean[c]=!0);if(a.from){this.css(a.from);var d=this.element.offsetHeight;d=null}this.enableTransition(a.to),this.css(a.to),this.isTransitioning=!0};var r="opacity,"+h(q.transform||"transform");g.prototype.enableTransition=function(){this.isTransitioning||(this.css({transitionProperty:r,transitionDuration:this.layout.options.transitionDuration}),this.element.addEventListener(o,this,!1))},g.prototype.transition=g.prototype[k?"_transition":"_nonTransition"],g.prototype.onwebkitTransitionEnd=function(a){this.ontransitionend(a)},g.prototype.onotransitionend=function(a){this.ontransitionend(a)};var s={"-webkit-transform":"transform","-moz-transform":"transform","-o-transform":"transform"};g.prototype.ontransitionend=function(a){if(a.target===this.element){var b=this._transn,c=s[a.propertyName]||a.propertyName;if(delete b.ingProperties[c],f(b.ingProperties)&&this.disableTransition(),c in b.clean&&(this.element.style[a.propertyName]="",delete b.clean[c]),c in b.onEnd){var d=b.onEnd[c];d.call(this),delete b.onEnd[c]}this.emitEvent("transitionEnd",[this])}},g.prototype.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(o,this,!1),this.isTransitioning=!1},g.prototype._removeStyles=function(a){var b={};for(var c in a)b[c]="";this.css(b)};var t={transitionProperty:"",transitionDuration:""};return g.prototype.removeTransitionStyles=function(){this.css(t)},g.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},g.prototype.remove=function(){if(!k||!parseFloat(this.layout.options.transitionDuration))return void this.removeElem();var a=this;this.once("transitionEnd",function(){a.removeElem()}),this.hide()},g.prototype.reveal=function(){delete this.isHidden,this.css({display:""});var a=this.layout.options,b={},c=this.getHideRevealTransitionEndProperty("visibleStyle");b[c]=this.onRevealTransitionEnd,this.transition({from:a.hiddenStyle,to:a.visibleStyle,isCleaning:!0,onTransitionEnd:b})},g.prototype.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},g.prototype.getHideRevealTransitionEndProperty=function(a){var b=this.layout.options[a];if(b.opacity)return"opacity";for(var c in b)return c},g.prototype.hide=function(){this.isHidden=!0,this.css({display:""});var a=this.layout.options,b={},c=this.getHideRevealTransitionEndProperty("hiddenStyle");b[c]=this.onHideTransitionEnd,this.transition({from:a.visibleStyle,to:a.hiddenStyle,isCleaning:!0,onTransitionEnd:b})},g.prototype.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},g.prototype.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},g}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["eventie/eventie","eventEmitter/EventEmitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(c,d,e,f,g){return b(a,c,d,e,f,g)}):"object"==typeof exports?module.exports=b(a,require("eventie"),require("wolfy87-eventemitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):a.Outlayer=b(a,a.eventie,a.EventEmitter,a.getSize,a.fizzyUIUtils,a.Outlayer.Item)}(window,function(a,b,c,d,e,f){"use strict";function g(a,b){var c=e.getQueryElement(a);if(!c)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(c||a)));this.element=c,i&&(this.$element=i(this.element)),this.options=e.extend({},this.constructor.defaults),this.option(b);var d=++k;this.element.outlayerGUID=d,l[d]=this,this._create(),this.options.isInitLayout&&this.layout()}var h=a.console,i=a.jQuery,j=function(){},k=0,l={};return g.namespace="outlayer",g.Item=f,g.defaults={containerStyle:{position:"relative"},isInitLayout:!0,isOriginLeft:!0,isOriginTop:!0,isResizeBound:!0,isResizingContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}},e.extend(g.prototype,c.prototype),g.prototype.option=function(a){e.extend(this.options,a)},g.prototype._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),e.extend(this.element.style,this.options.containerStyle),this.options.isResizeBound&&this.bindResize()},g.prototype.reloadItems=function(){this.items=this._itemize(this.element.children)},g.prototype._itemize=function(a){for(var b=this._filterFindItemElements(a),c=this.constructor.Item,d=[],e=0,f=b.length;f>e;e++){var g=b[e],h=new c(g,this);d.push(h)}return d},g.prototype._filterFindItemElements=function(a){return e.filterFindElements(a,this.options.itemSelector)},g.prototype.getItemElements=function(){for(var a=[],b=0,c=this.items.length;c>b;b++)a.push(this.items[b].element);return a},g.prototype.layout=function(){this._resetLayout(),this._manageStamps();var a=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,a),this._isLayoutInited=!0},g.prototype._init=g.prototype.layout,g.prototype._resetLayout=function(){this.getSize()},g.prototype.getSize=function(){this.size=d(this.element)},g.prototype._getMeasurement=function(a,b){var c,f=this.options[a];f?("string"==typeof f?c=this.element.querySelector(f):e.isElement(f)&&(c=f),this[a]=c?d(c)[b]:f):this[a]=0},g.prototype.layoutItems=function(a,b){a=this._getItemsForLayout(a),this._layoutItems(a,b),this._postLayout()},g.prototype._getItemsForLayout=function(a){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c];e.isIgnored||b.push(e)}return b},g.prototype._layoutItems=function(a,b){if(this._emitCompleteOnItems("layout",a),a&&a.length){for(var c=[],d=0,e=a.length;e>d;d++){var f=a[d],g=this._getItemLayoutPosition(f);g.item=f,g.isInstant=b||f.isLayoutInstant,c.push(g)}this._processLayoutQueue(c)}},g.prototype._getItemLayoutPosition=function(){return{x:0,y:0}},g.prototype._processLayoutQueue=function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b];this._positionItem(d.item,d.x,d.y,d.isInstant)}},g.prototype._positionItem=function(a,b,c,d){d?a.goTo(b,c):a.moveTo(b,c)},g.prototype._postLayout=function(){this.resizeContainer()},g.prototype.resizeContainer=function(){if(this.options.isResizingContainer){var a=this._getContainerSize();a&&(this._setContainerMeasure(a.width,!0),this._setContainerMeasure(a.height,!1))}},g.prototype._getContainerSize=j,g.prototype._setContainerMeasure=function(a,b){if(void 0!==a){var c=this.size;c.isBorderBox&&(a+=b?c.paddingLeft+c.paddingRight+c.borderLeftWidth+c.borderRightWidth:c.paddingBottom+c.paddingTop+c.borderTopWidth+c.borderBottomWidth),a=Math.max(a,0),this.element.style[b?"width":"height"]=a+"px"}},g.prototype._emitCompleteOnItems=function(a,b){function c(){e.dispatchEvent(a+"Complete",null,[b])}function d(){g++,g===f&&c()}var e=this,f=b.length;if(!b||!f)return void c();for(var g=0,h=0,i=b.length;i>h;h++){var j=b[h];j.once(a,d)}},g.prototype.dispatchEvent=function(a,b,c){var d=b?[b].concat(c):c;if(this.emitEvent(a,d),i)if(this.$element=this.$element||i(this.element),b){var e=i.Event(b);e.type=a,this.$element.trigger(e,c)}else this.$element.trigger(a,c)},g.prototype.ignore=function(a){var b=this.getItem(a);b&&(b.isIgnored=!0)},g.prototype.unignore=function(a){var b=this.getItem(a);b&&delete b.isIgnored},g.prototype.stamp=function(a){if(a=this._find(a)){this.stamps=this.stamps.concat(a);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.ignore(d)}}},g.prototype.unstamp=function(a){if(a=this._find(a))for(var b=0,c=a.length;c>b;b++){var d=a[b];e.removeFrom(this.stamps,d),this.unignore(d)}},g.prototype._find=function(a){return a?("string"==typeof a&&(a=this.element.querySelectorAll(a)),a=e.makeArray(a)):void 0},g.prototype._manageStamps=function(){if(this.stamps&&this.stamps.length){this._getBoundingRect();for(var a=0,b=this.stamps.length;b>a;a++){var c=this.stamps[a];this._manageStamp(c)}}},g.prototype._getBoundingRect=function(){var a=this.element.getBoundingClientRect(),b=this.size;this._boundingRect={left:a.left+b.paddingLeft+b.borderLeftWidth,top:a.top+b.paddingTop+b.borderTopWidth,right:a.right-(b.paddingRight+b.borderRightWidth),bottom:a.bottom-(b.paddingBottom+b.borderBottomWidth)}},g.prototype._manageStamp=j,g.prototype._getElementOffset=function(a){var b=a.getBoundingClientRect(),c=this._boundingRect,e=d(a),f={left:b.left-c.left-e.marginLeft,top:b.top-c.top-e.marginTop,right:c.right-b.right-e.marginRight,bottom:c.bottom-b.bottom-e.marginBottom};return f},g.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},g.prototype.bindResize=function(){this.isResizeBound||(b.bind(a,"resize",this),this.isResizeBound=!0)},g.prototype.unbindResize=function(){this.isResizeBound&&b.unbind(a,"resize",this),this.isResizeBound=!1},g.prototype.onresize=function(){function a(){b.resize(),delete b.resizeTimeout}this.resizeTimeout&&clearTimeout(this.resizeTimeout);var b=this;this.resizeTimeout=setTimeout(a,100)},g.prototype.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},g.prototype.needsResizeLayout=function(){var a=d(this.element),b=this.size&&a;return b&&a.innerWidth!==this.size.innerWidth},g.prototype.addItems=function(a){var b=this._itemize(a);return b.length&&(this.items=this.items.concat(b)),b},g.prototype.appended=function(a){var b=this.addItems(a);b.length&&(this.layoutItems(b,!0),this.reveal(b))},g.prototype.prepended=function(a){var b=this._itemize(a);if(b.length){var c=this.items.slice(0);this.items=b.concat(c),this._resetLayout(),this._manageStamps(),this.layoutItems(b,!0),this.reveal(b),this.layoutItems(c)}},g.prototype.reveal=function(a){this._emitCompleteOnItems("reveal",a);for(var b=a&&a.length,c=0;b&&b>c;c++){var d=a[c];d.reveal()}},g.prototype.hide=function(a){this._emitCompleteOnItems("hide",a);for(var b=a&&a.length,c=0;b&&b>c;c++){var d=a[c];d.hide()}},g.prototype.revealItemElements=function(a){var b=this.getItems(a);this.reveal(b)},g.prototype.hideItemElements=function(a){var b=this.getItems(a);this.hide(b)},g.prototype.getItem=function(a){for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];if(d.element===a)return d}},g.prototype.getItems=function(a){a=e.makeArray(a);for(var b=[],c=0,d=a.length;d>c;c++){var f=a[c],g=this.getItem(f);g&&b.push(g)}return b},g.prototype.remove=function(a){var b=this.getItems(a);if(this._emitCompleteOnItems("remove",b),b&&b.length)for(var c=0,d=b.length;d>c;c++){var f=b[c];f.remove(),e.removeFrom(this.items,f)}},g.prototype.destroy=function(){var a=this.element.style;a.height="",a.position="",a.width="";for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];d.destroy()}this.unbindResize();var e=this.element.outlayerGUID;delete l[e],delete this.element.outlayerGUID,i&&i.removeData(this.element,this.constructor.namespace)},g.data=function(a){a=e.getQueryElement(a);var b=a&&a.outlayerGUID;return b&&l[b]},g.create=function(a,b){function c(){g.apply(this,arguments)}return Object.create?c.prototype=Object.create(g.prototype):e.extend(c.prototype,g.prototype),c.prototype.constructor=c,c.defaults=e.extend({},g.defaults),e.extend(c.defaults,b),c.prototype.settings={},c.namespace=a,c.data=g.data,c.Item=function(){f.apply(this,arguments)},c.Item.prototype=new f,e.htmlInit(c,a),i&&i.bridget&&i.bridget(a,c),c},g.Item=f,g}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/item",["outlayer/outlayer"],b):"object"==typeof exports?module.exports=b(require("outlayer")):(a.Isotope=a.Isotope||{},a.Isotope.Item=b(a.Outlayer))}(window,function(a){"use strict";function b(){a.Item.apply(this,arguments)}b.prototype=new a.Item,b.prototype._create=function(){this.id=this.layout.itemGUID++,a.Item.prototype._create.call(this),this.sortData={}},b.prototype.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var a=this.layout.options.getSortData,b=this.layout._sorters;for(var c in a){var d=b[c];this.sortData[c]=d(this.element,this)}}};var c=b.prototype.destroy;return b.prototype.destroy=function(){c.apply(this,arguments),this.css({display:""})},b}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/layout-mode",["get-size/get-size","outlayer/outlayer"],b):"object"==typeof exports?module.exports=b(require("get-size"),require("outlayer")):(a.Isotope=a.Isotope||{},a.Isotope.LayoutMode=b(a.getSize,a.Outlayer))}(window,function(a,b){"use strict";function c(a){this.isotope=a,a&&(this.options=a.options[this.namespace],this.element=a.element,this.items=a.filteredItems,this.size=a.size)}return function(){function a(a){return function(){return b.prototype[a].apply(this.isotope,arguments)}}for(var d=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout"],e=0,f=d.length;f>e;e++){var g=d[e];c.prototype[g]=a(g)}}(),c.prototype.needsVerticalResizeLayout=function(){var b=a(this.isotope.element),c=this.isotope.size&&b;return c&&b.innerHeight!=this.isotope.size.innerHeight},c.prototype._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},c.prototype.getColumnWidth=function(){this.getSegmentSize("column","Width")},c.prototype.getRowHeight=function(){this.getSegmentSize("row","Height")},c.prototype.getSegmentSize=function(a,b){var c=a+b,d="outer"+b;if(this._getMeasurement(c,d),!this[c]){var e=this.getFirstItemSize();this[c]=e&&e[d]||this.isotope.size["inner"+b]}},c.prototype.getFirstItemSize=function(){var b=this.isotope.filteredItems[0];return b&&b.element&&a(b.element)},c.prototype.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},c.prototype.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},c.modes={},c.create=function(a,b){function d(){c.apply(this,arguments)}return d.prototype=new c,b&&(d.options=b),d.prototype.namespace=a,c.modes[a]=d,d},c}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("masonry/masonry",["outlayer/outlayer","get-size/get-size","fizzy-ui-utils/utils"],b):"object"==typeof exports?module.exports=b(require("outlayer"),require("get-size"),require("fizzy-ui-utils")):a.Masonry=b(a.Outlayer,a.getSize,a.fizzyUIUtils)}(window,function(a,b,c){var d=a.create("masonry");return d.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns();var a=this.cols;for(this.colYs=[];a--;)this.colYs.push(0);this.maxY=0},d.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var a=this.items[0],c=a&&a.element;this.columnWidth=c&&b(c).outerWidth||this.containerWidth}var d=this.columnWidth+=this.gutter,e=this.containerWidth+this.gutter,f=e/d,g=d-e%d,h=g&&1>g?"round":"floor";f=Math[h](f),this.cols=Math.max(f,1)},d.prototype.getContainerWidth=function(){var a=this.options.isFitWidth?this.element.parentNode:this.element,c=b(a);this.containerWidth=c&&c.innerWidth},d.prototype._getItemLayoutPosition=function(a){a.getSize();var b=a.size.outerWidth%this.columnWidth,d=b&&1>b?"round":"ceil",e=Math[d](a.size.outerWidth/this.columnWidth);e=Math.min(e,this.cols);for(var f=this._getColGroup(e),g=Math.min.apply(Math,f),h=c.indexOf(f,g),i={x:this.columnWidth*h,y:g},j=g+a.size.outerHeight,k=this.cols+1-f.length,l=0;k>l;l++)this.colYs[h+l]=j;return i},d.prototype._getColGroup=function(a){if(2>a)return this.colYs;for(var b=[],c=this.cols+1-a,d=0;c>d;d++){var e=this.colYs.slice(d,d+a);b[d]=Math.max.apply(Math,e)}return b},d.prototype._manageStamp=function(a){var c=b(a),d=this._getElementOffset(a),e=this.options.isOriginLeft?d.left:d.right,f=e+c.outerWidth,g=Math.floor(e/this.columnWidth);g=Math.max(0,g);var h=Math.floor(f/this.columnWidth);h-=f%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var i=(this.options.isOriginTop?d.top:d.bottom)+c.outerHeight,j=g;h>=j;j++)this.colYs[j]=Math.max(i,this.colYs[j])},d.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var a={height:this.maxY};return this.options.isFitWidth&&(a.width=this._getContainerFitWidth()),a},d.prototype._getContainerFitWidth=function(){for(var a=0,b=this.cols;--b&&0===this.colYs[b];)a++;return(this.cols-a)*this.columnWidth-this.gutter},d.prototype.needsResizeLayout=function(){var a=this.containerWidth;return this.getContainerWidth(),a!==this.containerWidth},d}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],b):"object"==typeof exports?module.exports=b(require("../layout-mode"),require("masonry-layout")):b(a.Isotope.LayoutMode,a.Masonry)}(window,function(a,b){"use strict";function c(a,b){for(var c in b)a[c]=b[c];return a}var d=a.create("masonry"),e=d.prototype._getElementOffset,f=d.prototype.layout,g=d.prototype._getMeasurement; +c(d.prototype,b.prototype),d.prototype._getElementOffset=e,d.prototype.layout=f,d.prototype._getMeasurement=g;var h=d.prototype.measureColumns;d.prototype.measureColumns=function(){this.items=this.isotope.filteredItems,h.call(this)};var i=d.prototype._manageStamp;return d.prototype._manageStamp=function(){this.options.isOriginLeft=this.isotope.options.isOriginLeft,this.options.isOriginTop=this.isotope.options.isOriginTop,i.apply(this,arguments)},d}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],b):"object"==typeof exports?module.exports=b(require("../layout-mode")):b(a.Isotope.LayoutMode)}(window,function(a){"use strict";var b=a.create("fitRows");return b.prototype._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},b.prototype._getItemLayoutPosition=function(a){a.getSize();var b=a.size.outerWidth+this.gutter,c=this.isotope.size.innerWidth+this.gutter;0!==this.x&&b+this.x>c&&(this.x=0,this.y=this.maxY);var d={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+a.size.outerHeight),this.x+=b,d},b.prototype._getContainerSize=function(){return{height:this.maxY}},b}),function(a,b){"use strict";"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],b):"object"==typeof exports?module.exports=b(require("../layout-mode")):b(a.Isotope.LayoutMode)}(window,function(a){"use strict";var b=a.create("vertical",{horizontalAlignment:0});return b.prototype._resetLayout=function(){this.y=0},b.prototype._getItemLayoutPosition=function(a){a.getSize();var b=(this.isotope.size.innerWidth-a.size.outerWidth)*this.options.horizontalAlignment,c=this.y;return this.y+=a.size.outerHeight,{x:b,y:c}},b.prototype._getContainerSize=function(){return{height:this.y}},b}),function(a,b){"use strict";"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(c,d,e,f,g,h){return b(a,c,d,e,f,g,h)}):"object"==typeof exports?module.exports=b(a,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("./item"),require("./layout-mode"),require("./layout-modes/masonry"),require("./layout-modes/fit-rows"),require("./layout-modes/vertical")):a.Isotope=b(a,a.Outlayer,a.getSize,a.matchesSelector,a.fizzyUIUtils,a.Isotope.Item,a.Isotope.LayoutMode)}(window,function(a,b,c,d,e,f,g){function h(a,b){return function(c,d){for(var e=0,f=a.length;f>e;e++){var g=a[e],h=c.sortData[g],i=d.sortData[g];if(h>i||i>h){var j=void 0!==b[g]?b[g]:b,k=j?1:-1;return(h>i?1:-1)*k}}return 0}}var i=a.jQuery,j=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^\s+|\s+$/g,"")},k=document.documentElement,l=k.textContent?function(a){return a.textContent}:function(a){return a.innerText},m=b.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});m.Item=f,m.LayoutMode=g,m.prototype._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),b.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var a in g.modes)this._initLayoutMode(a)},m.prototype.reloadItems=function(){this.itemGUID=0,b.prototype.reloadItems.call(this)},m.prototype._itemize=function(){for(var a=b.prototype._itemize.apply(this,arguments),c=0,d=a.length;d>c;c++){var e=a[c];e.id=this.itemGUID++}return this._updateItemsSortData(a),a},m.prototype._initLayoutMode=function(a){var b=g.modes[a],c=this.options[a]||{};this.options[a]=b.options?e.extend(b.options,c):c,this.modes[a]=new b(this)},m.prototype.layout=function(){return!this._isLayoutInited&&this.options.isInitLayout?void this.arrange():void this._layout()},m.prototype._layout=function(){var a=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,a),this._isLayoutInited=!0},m.prototype.arrange=function(a){function b(){d.reveal(c.needReveal),d.hide(c.needHide)}this.option(a),this._getIsInstant();var c=this._filter(this.items);this.filteredItems=c.matches;var d=this;this._bindArrangeComplete(),this._isInstant?this._noTransition(b):b(),this._sort(),this._layout()},m.prototype._init=m.prototype.arrange,m.prototype._getIsInstant=function(){var a=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;return this._isInstant=a,a},m.prototype._bindArrangeComplete=function(){function a(){b&&c&&d&&e.dispatchEvent("arrangeComplete",null,[e.filteredItems])}var b,c,d,e=this;this.once("layoutComplete",function(){b=!0,a()}),this.once("hideComplete",function(){c=!0,a()}),this.once("revealComplete",function(){d=!0,a()})},m.prototype._filter=function(a){var b=this.options.filter;b=b||"*";for(var c=[],d=[],e=[],f=this._getFilterTest(b),g=0,h=a.length;h>g;g++){var i=a[g];if(!i.isIgnored){var j=f(i);j&&c.push(i),j&&i.isHidden?d.push(i):j||i.isHidden||e.push(i)}}return{matches:c,needReveal:d,needHide:e}},m.prototype._getFilterTest=function(a){return i&&this.options.isJQueryFiltering?function(b){return i(b.element).is(a)}:"function"==typeof a?function(b){return a(b.element)}:function(b){return d(b.element,a)}},m.prototype.updateSortData=function(a){var b;a?(a=e.makeArray(a),b=this.getItems(a)):b=this.items,this._getSorters(),this._updateItemsSortData(b)},m.prototype._getSorters=function(){var a=this.options.getSortData;for(var b in a){var c=a[b];this._sorters[b]=n(c)}},m.prototype._updateItemsSortData=function(a){for(var b=a&&a.length,c=0;b&&b>c;c++){var d=a[c];d.updateSortData()}};var n=function(){function a(a){if("string"!=typeof a)return a;var c=j(a).split(" "),d=c[0],e=d.match(/^\[(.+)\]$/),f=e&&e[1],g=b(f,d),h=m.sortDataParsers[c[1]];return a=h?function(a){return a&&h(g(a))}:function(a){return a&&g(a)}}function b(a,b){var c;return c=a?function(b){return b.getAttribute(a)}:function(a){var c=a.querySelector(b);return c&&l(c)}}return a}();m.sortDataParsers={parseInt:function(a){return parseInt(a,10)},parseFloat:function(a){return parseFloat(a)}},m.prototype._sort=function(){var a=this.options.sortBy;if(a){var b=[].concat.apply(a,this.sortHistory),c=h(b,this.options.sortAscending);this.filteredItems.sort(c),a!=this.sortHistory[0]&&this.sortHistory.unshift(a)}},m.prototype._mode=function(){var a=this.options.layoutMode,b=this.modes[a];if(!b)throw new Error("No layout mode: "+a);return b.options=this.options[a],b},m.prototype._resetLayout=function(){b.prototype._resetLayout.call(this),this._mode()._resetLayout()},m.prototype._getItemLayoutPosition=function(a){return this._mode()._getItemLayoutPosition(a)},m.prototype._manageStamp=function(a){this._mode()._manageStamp(a)},m.prototype._getContainerSize=function(){return this._mode()._getContainerSize()},m.prototype.needsResizeLayout=function(){return this._mode().needsResizeLayout()},m.prototype.appended=function(a){var b=this.addItems(a);if(b.length){var c=this._filterRevealAdded(b);this.filteredItems=this.filteredItems.concat(c)}},m.prototype.prepended=function(a){var b=this._itemize(a);if(b.length){this._resetLayout(),this._manageStamps();var c=this._filterRevealAdded(b);this.layoutItems(this.filteredItems),this.filteredItems=c.concat(this.filteredItems),this.items=b.concat(this.items)}},m.prototype._filterRevealAdded=function(a){var b=this._filter(a);return this.hide(b.needHide),this.reveal(b.matches),this.layoutItems(b.matches,!0),b.matches},m.prototype.insert=function(a){var b=this.addItems(a);if(b.length){var c,d,e=b.length;for(c=0;e>c;c++)d=b[c],this.element.appendChild(d.element);var f=this._filter(b).matches;for(c=0;e>c;c++)b[c].isLayoutInstant=!0;for(this.arrange(),c=0;e>c;c++)delete b[c].isLayoutInstant;this.reveal(f)}};var o=m.prototype.remove;return m.prototype.remove=function(a){a=e.makeArray(a);var b=this.getItems(a);o.call(this,a);var c=b&&b.length;if(c)for(var d=0;c>d;d++){var f=b[d];e.removeFrom(this.filteredItems,f)}},m.prototype.shuffle=function(){for(var a=0,b=this.items.length;b>a;a++){var c=this.items[a];c.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},m.prototype._noTransition=function(a){var b=this.options.transitionDuration;this.options.transitionDuration=0;var c=a.call(this);return this.options.transitionDuration=b,c},m.prototype.getFilteredItemElements=function(){for(var a=[],b=0,c=this.filteredItems.length;c>b;b++)a.push(this.filteredItems[b].element);return a},m}); + + + +/*! +* jquery.counterup.js 1.0 +* +* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal +* Released under the GPL v2 License +* +* Date: Nov 26, 2013 +*/(function(e){"use strict";e.fn.counterUp=function(t){var n=e.extend({time:400,delay:10},t);return this.each(function(){var t=e(this),r=n,i=function(){var e=[],n=r.time/r.delay,i=t.text(),s=/[0-9]+,[0-9]+/.test(i);i=i.replace(/,/g,"");var o=/^[0-9]+$/.test(i),u=/^[0-9]+\.[0-9]+$/.test(i),a=u?(i.split(".")[1]||[]).length:0;for(var f=n;f>=1;f--){var l=parseInt(i/n*f);u&&(l=parseFloat(i/n*f).toFixed(a));if(s)while(/(\d+)(\d{3})/.test(l.toString()))l=l.toString().replace(/(\d+)(\d{3})/,"$1,$2");e.unshift(l)}t.data("counterup-nums",e);t.text("0");var c=function(){t.text(t.data("counterup-nums").shift());if(t.data("counterup-nums").length)setTimeout(t.data("counterup-func"),r.delay);else{delete t.data("counterup-nums");t.data("counterup-nums",null);t.data("counterup-func",null)}};t.data("counterup-func",c);setTimeout(t.data("counterup-func"),r.delay)};t.waypoint(i,{offset:"100%",triggerOnce:!0})})}})(jQuery); + + + +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright © 2001 Robert Penner + * All rights reserved. + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ +jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(go)return clearInterval(d),void(n&&"function"==typeof n&&n());var a=1e3,f=60*a,u=60*f,l=24*u,c=Math.floor(o/l),h=Math.floor(o%l/u),x=Math.floor(o%u/f),g=Math.floor(o%f/a),y=1===c?r.day:r.days,m=1===h?r.hour:r.hours,v=1===x?r.minute:r.minutes,D=1===g?r.second:r.seconds;c=String(c).length>=2?c:"0"+c,h=String(h).length>=2?h:"0"+h,x=String(x).length>=2?x:"0"+x,g=String(g).length>=2?g:"0"+g,i.find(".days").text(c),i.find(".hours").text(h),i.find(".minutes").text(x),i.find(".seconds").text(g),i.find(".days_text").text(y),i.find(".hours_text").text(m),i.find(".minutes_text").text(v),i.find(".seconds_text").text(D)}var r=t.extend({date:null,offset:null,day:"Day",days:"Days",hour:"Hour",hours:"Hours",minute:"Minute",minutes:"Mins",second:"Sec",seconds:"Secs"},e);r.date||t.error("Date is not defined."),Date.parse(r.date)||t.error("Incorrect date format, it should look like this, 12/24/2012 12:00:00.");var i=this,s=function(){var t=new Date,e=t.getTime()+6e4*t.getTimezoneOffset(),n=new Date(e+36e5*r.offset);return n},d=setInterval(o,1e3)}}(jQuery); \ No newline at end of file diff --git a/docs/assets/js/popper.min.js b/docs/assets/js/popper.min.js index 7b6658b0c6..c1d69d992e 100644 --- a/docs/assets/js/popper.min.js +++ b/docs/assets/js/popper.min.js @@ -1,847 +1,4 @@ /* Copyright (C) Federico Zivolo 2017 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). - */ (function(e, t) { - "object" == typeof exports && "undefined" != typeof module - ? module.exports = t() - : "function" == typeof define && define.amd - ? define(t) - : e.Popper = t(); -})(this, function() { - "use strict"; - function e(e) { - return e && "[object Function]" === {}.toString.call(e); - } - function t(e, t) { - if (1 !== e.nodeType) return []; - var o = window.getComputedStyle(e, null); - return t ? o[t] : o; - } - function o(e) { - return "HTML" === e.nodeName ? e : e.parentNode || e.host; - } - function n(e) { - if (!e || -1 !== ["HTML", "BODY", "#document"].indexOf(e.nodeName)) return window.document.body; - var i = t(e), r = i.overflow, p = i.overflowX, s = i.overflowY; - return /(auto|scroll)/.test(r + s + p) ? e : n(o(e)); - } - function r(e) { - var o = e && e.offsetParent, i = o && o.nodeName; - return i && "BODY" !== i && "HTML" !== i - ? -1 !== ["TD", "TABLE"].indexOf(o.nodeName) && "static" === t(o, "position") ? r(o) : o - : window.document.documentElement; - } - function p(e) { - var t = e.nodeName; - return "BODY" !== t && ("HTML" === t || r(e.firstElementChild) === e); - } - function s(e) { - return null === e.parentNode ? e : s(e.parentNode); - } - function d(e, t) { - if (!e || !e.nodeType || !t || !t.nodeType) return window.document.documentElement; - var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, - i = o ? e : t, - n = o ? t : e, - a = document.createRange(); - a.setStart(i, 0), a.setEnd(n, 0); - var l = a.commonAncestorContainer; - if (e !== l && t !== l || i.contains(n)) return p(l) ? l : r(l); - var f = s(e); - return f.host ? d(f.host, t) : d(e, s(t).host); - } - function a(e) { - var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "top", - o = "top" === t ? "scrollTop" : "scrollLeft", - i = e.nodeName; - if ("BODY" === i || "HTML" === i) { - var n = window.document.documentElement, r = window.document.scrollingElement || n; - return r[o]; - } - return e[o]; - } - function l(e, t) { - var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], - i = a(t, "top"), - n = a(t, "left"), - r = o ? -1 : 1; - return e.top += i * r, e.bottom += i * r, e.left += n * r, e.right += n * r, e; - } - function f(e, t) { - var o = "x" === t ? "Left" : "Top", i = "Left" == o ? "Right" : "Bottom"; - return +e["border" + o + "Width"].split("px")[0] + +e["border" + i + "Width"].split("px")[0]; - } - function m(e, t, o, i) { - return X( - t["offset" + e], - t["scroll" + e], - o["client" + e], - o["offset" + e], - o["scroll" + e], - ne() - ? o["offset" + e] + i["margin" + ("Height" === e ? "Top" : "Left")] - + i["margin" + ("Height" === e ? "Bottom" : "Right")] - : 0, - ); - } - function c() { - var e = window.document.body, t = window.document.documentElement, o = ne() && window.getComputedStyle(t); - return { height: m("Height", e, t, o), width: m("Width", e, t, o) }; - } - function h(e) { - return de({}, e, { right: e.left + e.width, bottom: e.top + e.height }); - } - function g(e) { - var o = {}; - if (ne()) { - try { - o = e.getBoundingClientRect(); - var i = a(e, "top"), n = a(e, "left"); - o.top += i, o.left += n, o.bottom += i, o.right += n; - } catch (e) {} - } else o = e.getBoundingClientRect(); - var r = { left: o.left, top: o.top, width: o.right - o.left, height: o.bottom - o.top }, - p = "HTML" === e.nodeName ? c() : {}, - s = p.width || e.clientWidth || r.right - r.left, - d = p.height || e.clientHeight || r.bottom - r.top, - l = e.offsetWidth - s, - m = e.offsetHeight - d; - if (l || m) { - var g = t(e); - l -= f(g, "x"), m -= f(g, "y"), r.width -= l, r.height -= m; - } - return h(r); - } - function u(e, o) { - var i = ne(), - r = "HTML" === o.nodeName, - p = g(e), - s = g(o), - d = n(e), - a = t(o), - f = +a.borderTopWidth.split("px")[0], - m = +a.borderLeftWidth.split("px")[0], - c = h({ top: p.top - s.top - f, left: p.left - s.left - m, width: p.width, height: p.height }); - if (c.marginTop = 0, c.marginLeft = 0, !i && r) { - var u = +a.marginTop.split("px")[0], b = +a.marginLeft.split("px")[0]; - c.top -= f - u, c.bottom -= f - u, c.left -= m - b, c.right -= m - b, c.marginTop = u, c.marginLeft = b; - } - return (i ? o.contains(d) : o === d && "BODY" !== d.nodeName) && (c = l(c, o)), c; - } - function b(e) { - var t = window.document.documentElement, - o = u(e, t), - i = X(t.clientWidth, window.innerWidth || 0), - n = X(t.clientHeight, window.innerHeight || 0), - r = a(t), - p = a(t, "left"), - s = { top: r - o.top + o.marginTop, left: p - o.left + o.marginLeft, width: i, height: n }; - return h(s); - } - function y(e) { - var i = e.nodeName; - return "BODY" === i || "HTML" === i ? !1 : "fixed" === t(e, "position") || y(o(e)); - } - function w(e, t, i, r) { - var p = { top: 0, left: 0 }, s = d(e, t); - if ("viewport" === r) p = b(s); - else { - var a; - "scrollParent" === r - ? (a = n(o(e)), "BODY" === a.nodeName && (a = window.document.documentElement)) - : "window" === r - ? a = window.document.documentElement - : a = r; - var l = u(a, s); - if ("HTML" === a.nodeName && !y(s)) { - var f = c(), m = f.height, h = f.width; - p.top += l.top - l.marginTop, p.bottom = m + l.top, p.left += l.left - l.marginLeft, p.right = h + l.left; - } else p = l; - } - return p.left += i, p.top += i, p.right -= i, p.bottom -= i, p; - } - function E(e) { - var t = e.width, o = e.height; - return t * o; - } - function v(e, t, o, i, n) { - var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0; - if (-1 === e.indexOf("auto")) return e; - var p = w(o, i, r, n), - s = { - top: { width: p.width, height: t.top - p.top }, - right: { width: p.right - t.right, height: p.height }, - bottom: { width: p.width, height: p.bottom - t.bottom }, - left: { width: t.left - p.left, height: p.height }, - }, - d = Object.keys(s).map(function(e) { - return de({ key: e }, s[e], { area: E(s[e]) }); - }).sort(function(e, t) { - return t.area - e.area; - }), - a = d.filter(function(e) { - var t = e.width, i = e.height; - return t >= o.clientWidth && i >= o.clientHeight; - }), - l = 0 < a.length ? a[0].key : d[0].key, - f = e.split("-")[1]; - return l + (f ? "-" + f : ""); - } - function x(e, t, o) { - var i = d(t, o); - return u(o, i); - } - function O(e) { - var t = window.getComputedStyle(e), - o = parseFloat(t.marginTop) + parseFloat(t.marginBottom), - i = parseFloat(t.marginLeft) + parseFloat(t.marginRight), - n = { width: e.offsetWidth + i, height: e.offsetHeight + o }; - return n; - } - function L(e) { - var t = { left: "right", right: "left", bottom: "top", top: "bottom" }; - return e.replace(/left|right|bottom|top/g, function(e) { - return t[e]; - }); - } - function S(e, t, o) { - o = o.split("-")[0]; - var i = O(e), - n = { width: i.width, height: i.height }, - r = -1 !== ["right", "left"].indexOf(o), - p = r ? "top" : "left", - s = r ? "left" : "top", - d = r ? "height" : "width", - a = r ? "width" : "height"; - return n[p] = t[p] + t[d] / 2 - i[d] / 2, n[s] = o === s ? t[s] - i[a] : t[L(s)], n; - } - function T(e, t) { - return Array.prototype.find ? e.find(t) : e.filter(t)[0]; - } - function C(e, t, o) { - if (Array.prototype.findIndex) { - return e.findIndex(function(e) { - return e[t] === o; - }); - } - var i = T(e, function(e) { - return e[t] === o; - }); - return e.indexOf(i); - } - function N(t, o, i) { - var n = void 0 === i ? t : t.slice(0, C(t, "name", i)); - return n.forEach(function(t) { - t.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); - var i = t.function || t.fn; - t.enabled && e(i) - && (o.offsets.popper = h(o.offsets.popper), o.offsets.reference = h(o.offsets.reference), o = i(o, t)); - }), - o; - } - function k() { - if (!this.state.isDestroyed) { - var e = { instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {} }; - e.offsets.reference = x(this.state, this.popper, this.reference), - e.placement = v( - this.options.placement, - e.offsets.reference, - this.popper, - this.reference, - this.options.modifiers.flip.boundariesElement, - this.options.modifiers.flip.padding, - ), - e.originalPlacement = e.placement, - e.offsets.popper = S(this.popper, e.offsets.reference, e.placement), - e.offsets.popper.position = "absolute", - e = N(this.modifiers, e), - this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)); - } - } - function W(e, t) { - return e.some(function(e) { - var o = e.name, i = e.enabled; - return i && o === t; - }); - } - function B(e) { - for ( - var t = [!1, "ms", "Webkit", "Moz", "O"], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; - n < t.length - 1; - n++ - ) { - var i = t[n], r = i ? "" + i + o : e; - if ("undefined" != typeof window.document.body.style[r]) return r; - } - return null; - } - function P() { - return this.state.isDestroyed = !0, - W(this.modifiers, "applyStyle") - && (this.popper.removeAttribute("x-placement"), - this.popper.style.left = "", - this.popper.style.position = "", - this.popper.style.top = "", - this.popper.style[B("transform")] = ""), - this.disableEventListeners(), - this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), - this; - } - function D(e, t, o, i) { - var r = "BODY" === e.nodeName, p = r ? window : e; - p.addEventListener(t, o, { passive: !0 }), r || D(n(p.parentNode), t, o, i), i.push(p); - } - function H(e, t, o, i) { - o.updateBound = i, window.addEventListener("resize", o.updateBound, { passive: !0 }); - var r = n(e); - return D(r, "scroll", o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o; - } - function A() { - this.state.eventsEnabled || (this.state = H(this.reference, this.options, this.state, this.scheduleUpdate)); - } - function M(e, t) { - return window.removeEventListener("resize", t.updateBound), - t.scrollParents.forEach(function(e) { - e.removeEventListener("scroll", t.updateBound); - }), - t.updateBound = null, - t.scrollParents = [], - t.scrollElement = null, - t.eventsEnabled = !1, - t; - } - function I() { - this.state.eventsEnabled - && (window.cancelAnimationFrame(this.scheduleUpdate), this.state = M(this.reference, this.state)); - } - function R(e) { - return "" !== e && !isNaN(parseFloat(e)) && isFinite(e); - } - function U(e, t) { - Object.keys(t).forEach(function(o) { - var i = ""; - -1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(o) && R(t[o]) && (i = "px"), - e.style[o] = t[o] + i; - }); - } - function Y(e, t) { - Object.keys(t).forEach(function(o) { - var i = t[o]; - !1 === i ? e.removeAttribute(o) : e.setAttribute(o, t[o]); - }); - } - function F(e, t, o) { - var i = T(e, function(e) { - var o = e.name; - return o === t; - }), - n = !!i && e.some(function(e) { - return e.name === o && e.enabled && e.order < i.order; - }); - if (!n) { - var r = "`" + t + "`"; - console.warn( - "`" + o + "`" + " modifier is required by " + r + " modifier in order to work, be sure to include it before " - + r + "!", - ); - } - return n; - } - function j(e) { - return "end" === e ? "start" : "start" === e ? "end" : e; - } - function K(e) { - var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], - o = le.indexOf(e), - i = le.slice(o + 1).concat(le.slice(0, o)); - return t ? i.reverse() : i; - } - function q(e, t, o, i) { - var n = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +n[1], p = n[2]; - if (!r) return e; - if (0 === p.indexOf("%")) { - var s; - switch (p) { - case "%p": - s = o; - break; - case "%": - case "%r": - default: - s = i; - } - var d = h(s); - return d[t] / 100 * r; - } - if ("vh" === p || "vw" === p) { - var a; - return a = "vh" === p - ? X(document.documentElement.clientHeight, window.innerHeight || 0) - : X(document.documentElement.clientWidth, window.innerWidth || 0), - a / 100 * r; - } - return r; - } - function G(e, t, o, i) { - var n = [0, 0], - r = -1 !== ["right", "left"].indexOf(i), - p = e.split(/(\+|\-)/).map(function(e) { - return e.trim(); - }), - s = p.indexOf(T(p, function(e) { - return -1 !== e.search(/,|\s/); - })); - p[s] && -1 === p[s].indexOf(",") - && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); - var d = /\s*,\s*|\s+/, - a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))]; - return a = a.map(function(e, i) { - var n = (1 === i ? !r : r) ? "height" : "width", p = !1; - return e.reduce(function(e, t) { - return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) - ? (e[e.length - 1] = t, p = !0, e) - : p - ? (e[e.length - 1] += t, p = !1, e) - : e.concat(t); - }, []).map(function(e) { - return q(e, n, t, o); - }); - }), - a.forEach(function(e, t) { - e.forEach(function(o, i) { - R(o) && (n[t] += o * ("-" === e[i - 1] ? -1 : 1)); - }); - }), - n; - } - function z(e, t) { - var o, i = t.offset, n = e.placement, r = e.offsets, p = r.popper, s = r.reference, d = n.split("-")[0]; - return o = R(+i) ? [+i, 0] : G(i, p, s, d), - "left" === d - ? (p.top += o[0], p.left -= o[1]) - : "right" === d - ? (p.top += o[0], p.left += o[1]) - : "top" === d - ? (p.left += o[0], p.top -= o[1]) - : "bottom" === d && (p.left += o[0], p.top += o[1]), - e.popper = p, - e; - } - for ( - var V = Math.min, - _ = Math.floor, - X = Math.max, - Q = ["native code", "[object MutationObserverConstructor]"], - J = function(e) { - return Q.some(function(t) { - return -1 < (e || "").toString().indexOf(t); - }); - }, - Z = "undefined" != typeof window, - $ = ["Edge", "Trident", "Firefox"], - ee = 0, - te = 0; - te < $.length; - te += 1 - ) { - if (Z && 0 <= navigator.userAgent.indexOf($[te])) { - ee = 1; - break; - } - } - var i, - oe = Z && J(window.MutationObserver), - ie = oe - ? function(e) { - var t = !1, - o = 0, - i = document.createElement("span"), - n = new MutationObserver(function() { - e(), t = !1; - }); - return n.observe(i, { attributes: !0 }), function() { - t || (t = !0, i.setAttribute("x-index", o), ++o); - }; - } - : function(e) { - var t = !1; - return function() { - t || (t = !0, - setTimeout(function() { - t = !1, e(); - }, ee)); - }; - }, - ne = function() { - return void 0 == i && (i = -1 !== navigator.appVersion.indexOf("MSIE 10")), i; - }, - re = function(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); - }, - pe = function() { - function e(e, t) { - for (var o, n = 0; n < t.length; n++) { - o = t[n], - o.enumerable = o.enumerable || !1, - o.configurable = !0, - "value" in o && (o.writable = !0), - Object.defineProperty(e, o.key, o); - } - } - return function(t, o, i) { - return o && e(t.prototype, o), i && e(t, i), t; - }; - }(), - se = function(e, t, o) { - return t in e - ? Object.defineProperty(e, t, { value: o, enumerable: !0, configurable: !0, writable: !0 }) - : e[t] = o, - e; - }, - de = Object.assign || function(e) { - for (var t, o = 1; o < arguments.length; o++) { - for (var i in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); - } - return e; - }, - ae = [ - "auto-start", - "auto", - "auto-end", - "top-start", - "top", - "top-end", - "right-start", - "right", - "right-end", - "bottom-end", - "bottom", - "bottom-start", - "left-end", - "left", - "left-start", - ], - le = ae.slice(3), - fe = { FLIP: "flip", CLOCKWISE: "clockwise", COUNTERCLOCKWISE: "counterclockwise" }, - me = function() { - function t(o, i) { - var n = this, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; - re(this, t), - this.scheduleUpdate = function() { - return requestAnimationFrame(n.update); - }, - this.update = ie(this.update.bind(this)), - this.options = de({}, t.Defaults, r), - this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }, - this.reference = o.jquery ? o[0] : o, - this.popper = i.jquery ? i[0] : i, - this.options.modifiers = {}, - Object.keys(de({}, t.Defaults.modifiers, r.modifiers)).forEach(function(e) { - n.options.modifiers[e] = de({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {}); - }), - this.modifiers = Object.keys(this.options.modifiers).map(function(e) { - return de({ name: e }, n.options.modifiers[e]); - }).sort(function(e, t) { - return e.order - t.order; - }), - this.modifiers.forEach(function(t) { - t.enabled && e(t.onLoad) && t.onLoad(n.reference, n.popper, n.options, t, n.state); - }), - this.update(); - var p = this.options.eventsEnabled; - p && this.enableEventListeners(), this.state.eventsEnabled = p; - } - return pe(t, [{ - key: "update", - value: function() { - return k.call(this); - }, - }, { - key: "destroy", - value: function() { - return P.call(this); - }, - }, { - key: "enableEventListeners", - value: function() { - return A.call(this); - }, - }, { - key: "disableEventListeners", - value: function() { - return I.call(this); - }, - }]), - t; - }(); - return me.Utils = ("undefined" == typeof window ? global : window).PopperUtils, - me.placements = ae, - me.Defaults = { - placement: "bottom", - eventsEnabled: !0, - removeOnDestroy: !1, - onCreate: function() {}, - onUpdate: function() {}, - modifiers: { - shift: { - order: 100, - enabled: !0, - fn: function(e) { - var t = e.placement, o = t.split("-")[0], i = t.split("-")[1]; - if (i) { - var n = e.offsets, - r = n.reference, - p = n.popper, - s = -1 !== ["bottom", "top"].indexOf(o), - d = s ? "left" : "top", - a = s ? "width" : "height", - l = { start: se({}, d, r[d]), end: se({}, d, r[d] + r[a] - p[a]) }; - e.offsets.popper = de({}, p, l[i]); - } - return e; - }, - }, - offset: { order: 200, enabled: !0, fn: z, offset: 0 }, - preventOverflow: { - order: 300, - enabled: !0, - fn: function(e, t) { - var o = t.boundariesElement || r(e.instance.popper); - e.instance.reference === o && (o = r(o)); - var i = w(e.instance.popper, e.instance.reference, t.padding, o); - t.boundaries = i; - var n = t.priority, - p = e.offsets.popper, - s = { - primary: function(e) { - var o = p[e]; - return p[e] < i[e] && !t.escapeWithReference && (o = X(p[e], i[e])), se({}, e, o); - }, - secondary: function(e) { - var o = "right" === e ? "left" : "top", n = p[o]; - return p[e] > i[e] && !t.escapeWithReference - && (n = V(p[o], i[e] - ("right" === e ? p.width : p.height))), - se({}, o, n); - }, - }; - return n.forEach(function(e) { - var t = -1 === ["left", "top"].indexOf(e) ? "secondary" : "primary"; - p = de({}, p, s[t](e)); - }), - e.offsets.popper = p, - e; - }, - priority: ["left", "right", "top", "bottom"], - padding: 5, - boundariesElement: "scrollParent", - }, - keepTogether: { - order: 400, - enabled: !0, - fn: function(e) { - var t = e.offsets, - o = t.popper, - i = t.reference, - n = e.placement.split("-")[0], - r = _, - p = -1 !== ["top", "bottom"].indexOf(n), - s = p ? "right" : "bottom", - d = p ? "left" : "top", - a = p ? "width" : "height"; - return o[s] < r(i[d]) && (e.offsets.popper[d] = r(i[d]) - o[a]), - o[d] > r(i[s]) && (e.offsets.popper[d] = r(i[s])), - e; - }, - }, - arrow: { - order: 500, - enabled: !0, - fn: function(e, o) { - if (!F(e.instance.modifiers, "arrow", "keepTogether")) return e; - var i = o.element; - if ("string" == typeof i) { - if (i = e.instance.popper.querySelector(i), !i) return e; - else if (!e.instance.popper.contains(i)) { - return console.warn( - "WARNING: `arrow.element` must be child of its popper element!", - ), - e; - } - } - var n = e.placement.split("-")[0], - r = e.offsets, - p = r.popper, - s = r.reference, - d = -1 !== ["left", "right"].indexOf(n), - a = d ? "height" : "width", - l = d ? "Top" : "Left", - f = l.toLowerCase(), - m = d ? "left" : "top", - c = d ? "bottom" : "right", - g = O(i)[a]; - s[c] - g < p[f] && (e.offsets.popper[f] -= p[f] - (s[c] - g)), - s[f] + g > p[c] && (e.offsets.popper[f] += s[f] + g - p[c]); - var u = s[f] + s[a] / 2 - g / 2, - b = t(e.instance.popper, "margin" + l).replace("px", ""), - y = u - h(e.offsets.popper)[f] - b; - return y = X(V(p[a] - g, y), 0), - e.arrowElement = i, - e.offsets.arrow = {}, - e.offsets.arrow[f] = Math.round(y), - e.offsets.arrow[m] = "", - e; - }, - element: "[x-arrow]", - }, - flip: { - order: 600, - enabled: !0, - fn: function(e, t) { - if (W(e.instance.modifiers, "inner")) return e; - if (e.flipped && e.placement === e.originalPlacement) return e; - var o = w(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement), - i = e.placement.split("-")[0], - n = L(i), - r = e.placement.split("-")[1] || "", - p = []; - switch (t.behavior) { - case fe.FLIP: - p = [i, n]; - break; - case fe.CLOCKWISE: - p = K(i); - break; - case fe.COUNTERCLOCKWISE: - p = K(i, !0); - break; - default: - p = t.behavior; - } - return p.forEach(function(s, d) { - if (i !== s || p.length === d + 1) return e; - i = e.placement.split("-")[0], n = L(i); - var a = e.offsets.popper, - l = e.offsets.reference, - f = _, - m = "left" === i && f(a.right) > f(l.left) || "right" === i && f(a.left) < f(l.right) - || "top" === i && f(a.bottom) > f(l.top) || "bottom" === i && f(a.top) < f(l.bottom), - c = f(a.left) < f(o.left), - h = f(a.right) > f(o.right), - g = f(a.top) < f(o.top), - u = f(a.bottom) > f(o.bottom), - b = "left" === i && c || "right" === i && h || "top" === i && g || "bottom" === i && u, - y = -1 !== ["top", "bottom"].indexOf(i), - w = !!t.flipVariations - && (y && "start" === r && c || y && "end" === r && h || !y && "start" === r && g - || !y && "end" === r && u); - (m || b || w) - && (e.flipped = !0, - (m || b) && (i = p[d + 1]), - w && (r = j(r)), - e.placement = i + (r ? "-" + r : ""), - e.offsets.popper = de({}, e.offsets.popper, S(e.instance.popper, e.offsets.reference, e.placement)), - e = N(e.instance.modifiers, e, "flip")); - }), - e; - }, - behavior: "flip", - padding: 5, - boundariesElement: "viewport", - }, - inner: { - order: 700, - enabled: !1, - fn: function(e) { - var t = e.placement, - o = t.split("-")[0], - i = e.offsets, - n = i.popper, - r = i.reference, - p = -1 !== ["left", "right"].indexOf(o), - s = -1 === ["top", "left"].indexOf(o); - return n[p ? "left" : "top"] = r[o] - (s ? n[p ? "width" : "height"] : 0), - e.placement = L(t), - e.offsets.popper = h(n), - e; - }, - }, - hide: { - order: 800, - enabled: !0, - fn: function(e) { - if (!F(e.instance.modifiers, "hide", "preventOverflow")) return e; - var t = e.offsets.reference, - o = T(e.instance.modifiers, function(e) { - return "preventOverflow" === e.name; - }).boundaries; - if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) { - if (!0 === e.hide) return e; - e.hide = !0, e.attributes["x-out-of-boundaries"] = ""; - } else { - if (!1 === e.hide) return e; - e.hide = !1, e.attributes["x-out-of-boundaries"] = !1; - } - return e; - }, - }, - computeStyle: { - order: 850, - enabled: !0, - fn: function(e, t) { - var o = t.x, - i = t.y, - n = e.offsets.popper, - p = T(e.instance.modifiers, function(e) { - return "applyStyle" === e.name; - }).gpuAcceleration; - void 0 !== p - && console.warn( - "WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!", - ); - var s, - d, - a = void 0 === p ? t.gpuAcceleration : p, - l = r(e.instance.popper), - f = g(l), - m = { position: n.position }, - c = { left: _(n.left), top: _(n.top), bottom: _(n.bottom), right: _(n.right) }, - h = "bottom" === o ? "top" : "bottom", - u = "right" === i ? "left" : "right", - b = B("transform"); - if ( - d = "bottom" == h ? -f.height + c.bottom : c.top, s = "right" == u ? -f.width + c.right : c.left, a && b - ) m[b] = "translate3d(" + s + "px, " + d + "px, 0)", m[h] = 0, m[u] = 0, m.willChange = "transform"; - else { - var y = "bottom" == h ? -1 : 1, w = "right" == u ? -1 : 1; - m[h] = d * y, m[u] = s * w, m.willChange = h + ", " + u; - } - var E = { "x-placement": e.placement }; - return e.attributes = de({}, E, e.attributes), - e.styles = de({}, m, e.styles), - e.arrowStyles = de({}, e.offsets.arrow, e.arrowStyles), - e; - }, - gpuAcceleration: !0, - x: "bottom", - y: "right", - }, - applyStyle: { - order: 900, - enabled: !0, - fn: function(e) { - return U(e.instance.popper, e.styles), - Y(e.instance.popper, e.attributes), - e.arrowElement && Object.keys(e.arrowStyles).length && U(e.arrowElement, e.arrowStyles), - e; - }, - onLoad: function(e, t, o, i, n) { - var r = x(n, t, e), - p = v(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding); - return t.setAttribute("x-placement", p), U(t, { position: "absolute" }), o; - }, - gpuAcceleration: void 0, - }, - }, - }, - me; -}); + */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1=o.clientWidth&&i>=o.clientHeight}),l=0i[e]&&!t.escapeWithReference&&(n=V(p[o],i[e]-('right'===e?p.width:p.height))),se({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=de({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=_,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var n=e.placement.split('-')[0],r=e.offsets,p=r.popper,s=r.reference,d=-1!==['left','right'].indexOf(n),a=d?'height':'width',l=d?'Top':'Left',f=l.toLowerCase(),m=d?'left':'top',c=d?'bottom':'right',g=O(i)[a];s[c]-gp[c]&&(e.offsets.popper[f]+=s[f]+g-p[c]);var u=s[f]+s[a]/2-g/2,b=t(e.instance.popper,'margin'+l).replace('px',''),y=u-h(e.offsets.popper)[f]-b;return y=X(V(p[a]-g,y),0),e.arrowElement=i,e.offsets.arrow={},e.offsets.arrow[f]=Math.round(y),e.offsets.arrow[m]='',e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,l=e.offsets.reference,f=_,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)f(l.top)||'bottom'===i&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===i&&c||'right'===i&&h||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&c||y&&'end'===r&&h||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=de({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=h(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right= minlength; - }, - }; - - Validator.prototype.onInput = function(e) { - var self = this; - var $el = $(e.target); - var deferErrors = e.type !== "focusout"; - this.validateInput($el, deferErrors).done(function() { - self.toggleSubmit(); - }); - }; - - Validator.prototype.validateInput = function($el, deferErrors) { - var value = getValue($el); - var prevValue = $el.data("bs.validator.previous"); - var prevErrors = $el.data("bs.validator.errors"); - var errors; - - if (prevValue === value) return $.Deferred().resolve(); - else $el.data("bs.validator.previous", value); - - if ($el.is("[type=\"radio\"]")) $el = this.$element.find("input[name=\"" + $el.attr("name") + "\"]"); - - var e = $.Event("validate.bs.validator", { relatedTarget: $el[0] }); - this.$element.trigger(e); - if (e.isDefaultPrevented()) return; - - var self = this; - - return this.runValidators($el).done(function(errors) { - $el.data("bs.validator.errors", errors); - - errors.length - ? deferErrors ? self.defer($el, self.showErrors) : self.showErrors($el) - : self.clearErrors($el); - - if (!prevErrors || errors.toString() !== prevErrors.toString()) { - e = errors.length - ? $.Event("invalid.bs.validator", { relatedTarget: $el[0], detail: errors }) - : $.Event("valid.bs.validator", { relatedTarget: $el[0], detail: prevErrors }); - - self.$element.trigger(e); - } - - self.toggleSubmit(); - - self.$element.trigger($.Event("validated.bs.validator", { relatedTarget: $el[0] })); - }); - }; - - Validator.prototype.runValidators = function($el) { - var errors = []; - var deferred = $.Deferred(); - var options = this.options; - - $el.data("bs.validator.deferred") && $el.data("bs.validator.deferred").reject(); - $el.data("bs.validator.deferred", deferred); - - function getErrorMessage(key) { - return $el.data(key + "-error") - || $el.data("error") - || key == "native" && $el[0].validationMessage - || options.errors[key]; - } - - $.each( - Validator.VALIDATORS, - $.proxy(function(key, validator) { - if ( - (getValue($el) || $el.attr("required")) - && ($el.data(key) || key == "native") - && !validator.call(this, $el) - ) { - var error = getErrorMessage(key); - !~errors.indexOf(error) && errors.push(error); - } - }, this), - ); - - if (!errors.length && getValue($el) && $el.data("remote")) { - this.defer($el, function() { - var data = {}; - data[$el.attr("name")] = getValue($el); - $.get($el.data("remote"), data) - .fail(function(jqXHR, textStatus, error) { - errors.push(getErrorMessage("remote") || error); - }) - .always(function() { - deferred.resolve(errors); - }); - }); - } else deferred.resolve(errors); - - return deferred.promise(); - }; - - Validator.prototype.validate = function() { - var self = this; - - $.when(this.$inputs.map(function(el) { - return self.validateInput($(this), false); - })).then(function() { - self.toggleSubmit(); - self.focusError(); - }); - - return this; - }; - - Validator.prototype.focusError = function() { - if (!this.options.focus) return; - - var $input = $(".has-error:first :input"); - if ($input.length === 0) return; - - $(document.body).animate({ scrollTop: $input.offset().top - Validator.FOCUS_OFFSET }, 250); - $input.focus(); - }; - - Validator.prototype.showErrors = function($el) { - var method = this.options.html ? "html" : "text"; - var errors = $el.data("bs.validator.errors"); - var $group = $el.closest(".form-group"); - var $block = $group.find(".help-block.with-errors"); - var $feedback = $group.find(".form-control-feedback"); - - if (!errors.length) return; - - errors = $("
    ") - .addClass("list-unstyled") - .append($.map(errors, function(error) { - return $("
  • ")[method](error); - })); - - $block.data("bs.validator.originalContent") === undefined - && $block.data("bs.validator.originalContent", $block.html()); - $block.empty().append(errors); - $group.addClass("has-error has-danger"); - - $group.hasClass("has-feedback") - && $feedback.removeClass(this.options.feedback.success) - && $feedback.addClass(this.options.feedback.error) - && $group.removeClass("has-success"); - }; - - Validator.prototype.clearErrors = function($el) { - var $group = $el.closest(".form-group"); - var $block = $group.find(".help-block.with-errors"); - var $feedback = $group.find(".form-control-feedback"); - - $block.html($block.data("bs.validator.originalContent")); - $group.removeClass("has-error has-danger"); - - $group.hasClass("has-feedback") - && $feedback.removeClass(this.options.feedback.error) - && getValue($el) - && $feedback.addClass(this.options.feedback.success) - && $group.addClass("has-success"); - }; - - Validator.prototype.hasErrors = function() { - function fieldErrors() { - return !!($(this).data("bs.validator.errors") || []).length; - } - - return !!this.$inputs.filter(fieldErrors).length; - }; - - Validator.prototype.isIncomplete = function() { - function fieldIncomplete() { - return !getValue($(this)); - } - - return !!this.$inputs.filter("[required]").filter(fieldIncomplete).length; - }; - - Validator.prototype.onSubmit = function(e) { - this.validate(); - if (this.isIncomplete() || this.hasErrors()) e.preventDefault(); - }; - - Validator.prototype.toggleSubmit = function() { - if (!this.options.disable) return; - this.$btn.toggleClass("disabled", this.isIncomplete() || this.hasErrors()); - }; - - Validator.prototype.defer = function($el, callback) { - callback = $.proxy(callback, this, $el); - if (!this.options.delay) return callback(); - window.clearTimeout($el.data("bs.validator.timeout")); - $el.data("bs.validator.timeout", window.setTimeout(callback, this.options.delay)); - }; - - Validator.prototype.destroy = function() { - this.$element - .removeAttr("novalidate") - .removeData("bs.validator") - .off(".bs.validator") - .find(".form-control-feedback") - .removeClass([this.options.feedback.error, this.options.feedback.success].join(" ")); - - this.$inputs - .off(".bs.validator") - .removeData(["bs.validator.errors", "bs.validator.deferred", "bs.validator.previous"]) - .each(function() { - var $this = $(this); - var timeout = $this.data("bs.validator.timeout"); - window.clearTimeout(timeout) && $this.removeData("bs.validator.timeout"); - }); - - this.$element.find(".help-block.with-errors").each(function() { - var $this = $(this); - var originalContent = $this.data("bs.validator.originalContent"); - - $this - .removeData("bs.validator.originalContent") - .html(originalContent); - }); - - this.$element.find("input[type=\"submit\"], button[type=\"submit\"]").removeClass("disabled"); - - this.$element.find(".has-error, .has-danger").removeClass("has-error has-danger"); - - return this; - }; - - // VALIDATOR PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function() { - var $this = $(this); - var options = $.extend({}, Validator.DEFAULTS, $this.data(), typeof option == "object" && option); - var data = $this.data("bs.validator"); - - if (!data && option == "destroy") return; - if (!data) $this.data("bs.validator", data = new Validator(this, options)); - if (typeof option == "string") data[option](); - }); - } - - var old = $.fn.validator; - - $.fn.validator = Plugin; - $.fn.validator.Constructor = Validator; - - // VALIDATOR NO CONFLICT - // ===================== - - $.fn.validator.noConflict = function() { - $.fn.validator = old; - return this; - }; - - // VALIDATOR DATA-API - // ================== - - $(window).on("load", function() { - $("form[data-toggle=\"validator\"]").each(function() { - var $form = $(this); - Plugin.call($form, $form.data()); - }); - }); -}(jQuery); + +/* ======================================================================== + * Bootstrap (plugin): validator.js v0.10.2 + * ======================================================================== + * The MIT License (MIT) + * + * Copyright (c) 2015 Cina Saffary. + * Made by @1000hz in the style of Bootstrap 3 era @fat + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // VALIDATOR CLASS DEFINITION + // ========================== + + function getValue($el) { + return $el.is('[type="checkbox"]') ? $el.prop('checked') : + $el.is('[type="radio"]') ? !!$('[name="' + $el.attr('name') + '"]:checked').length : + $.trim($el.val()) + } + + var Validator = function (element, options) { + this.options = options + this.$element = $(element) + this.$inputs = this.$element.find(Validator.INPUT_SELECTOR) + this.$btn = $('button[type="submit"], input[type="submit"]') + .filter('[form="' + this.$element.attr('id') + '"]') + .add(this.$element.find('input[type="submit"], button[type="submit"]')) + + options.errors = $.extend({}, Validator.DEFAULTS.errors, options.errors) + + for (var custom in options.custom) { + if (!options.errors[custom]) throw new Error('Missing default error message for custom validator: ' + custom) + } + + $.extend(Validator.VALIDATORS, options.custom) + + this.$element.attr('novalidate', true) // disable automatic native validation + this.toggleSubmit() + + this.$element.on('input.bs.validator change.bs.validator focusout.bs.validator', Validator.INPUT_SELECTOR, $.proxy(this.onInput, this)) + this.$element.on('submit.bs.validator', $.proxy(this.onSubmit, this)) + + this.$element.find('[data-match]').each(function () { + var $this = $(this) + var target = $this.data('match') + + $(target).on('input.bs.validator', function (e) { + getValue($this) && $this.trigger('input.bs.validator') + }) + }) + } + + Validator.INPUT_SELECTOR = ':input:not([type="submit"], button):enabled:visible' + + Validator.FOCUS_OFFSET = 20 + + Validator.DEFAULTS = { + delay: 500, + html: false, + disable: true, + focus: true, + custom: {}, + errors: { + match: 'Does not match', + minlength: 'Not long enough' + }, + feedback: { + success: 'glyphicon-ok', + error: 'glyphicon-remove' + } + } + + Validator.VALIDATORS = { + 'native': function ($el) { + var el = $el[0] + return el.checkValidity ? el.checkValidity() : true + }, + 'match': function ($el) { + var target = $el.data('match') + return !$el.val() || $el.val() === $(target).val() + }, + 'minlength': function ($el) { + var minlength = $el.data('minlength') + return !$el.val() || $el.val().length >= minlength + } + } + + Validator.prototype.onInput = function (e) { + var self = this + var $el = $(e.target) + var deferErrors = e.type !== 'focusout' + this.validateInput($el, deferErrors).done(function () { + self.toggleSubmit() + }) + } + + Validator.prototype.validateInput = function ($el, deferErrors) { + var value = getValue($el) + var prevValue = $el.data('bs.validator.previous') + var prevErrors = $el.data('bs.validator.errors') + var errors + + if (prevValue === value) return $.Deferred().resolve() + else $el.data('bs.validator.previous', value) + + if ($el.is('[type="radio"]')) $el = this.$element.find('input[name="' + $el.attr('name') + '"]') + + var e = $.Event('validate.bs.validator', {relatedTarget: $el[0]}) + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + + var self = this + + return this.runValidators($el).done(function (errors) { + $el.data('bs.validator.errors', errors) + + errors.length + ? deferErrors ? self.defer($el, self.showErrors) : self.showErrors($el) + : self.clearErrors($el) + + if (!prevErrors || errors.toString() !== prevErrors.toString()) { + e = errors.length + ? $.Event('invalid.bs.validator', {relatedTarget: $el[0], detail: errors}) + : $.Event('valid.bs.validator', {relatedTarget: $el[0], detail: prevErrors}) + + self.$element.trigger(e) + } + + self.toggleSubmit() + + self.$element.trigger($.Event('validated.bs.validator', {relatedTarget: $el[0]})) + }) + } + + + Validator.prototype.runValidators = function ($el) { + var errors = [] + var deferred = $.Deferred() + var options = this.options + + $el.data('bs.validator.deferred') && $el.data('bs.validator.deferred').reject() + $el.data('bs.validator.deferred', deferred) + + function getErrorMessage(key) { + return $el.data(key + '-error') + || $el.data('error') + || key == 'native' && $el[0].validationMessage + || options.errors[key] + } + + $.each(Validator.VALIDATORS, $.proxy(function (key, validator) { + if ((getValue($el) || $el.attr('required')) && + ($el.data(key) || key == 'native') && + !validator.call(this, $el)) { + var error = getErrorMessage(key) + !~errors.indexOf(error) && errors.push(error) + } + }, this)) + + if (!errors.length && getValue($el) && $el.data('remote')) { + this.defer($el, function () { + var data = {} + data[$el.attr('name')] = getValue($el) + $.get($el.data('remote'), data) + .fail(function (jqXHR, textStatus, error) { errors.push(getErrorMessage('remote') || error) }) + .always(function () { deferred.resolve(errors)}) + }) + } else deferred.resolve(errors) + + return deferred.promise() + } + + Validator.prototype.validate = function () { + var self = this + + $.when(this.$inputs.map(function (el) { + return self.validateInput($(this), false) + })).then(function () { + self.toggleSubmit() + self.focusError() + }) + + return this + } + + Validator.prototype.focusError = function () { + if (!this.options.focus) return + + var $input = $(".has-error:first :input") + if ($input.length === 0) return + + $(document.body).animate({scrollTop: $input.offset().top - Validator.FOCUS_OFFSET}, 250) + $input.focus() + } + + Validator.prototype.showErrors = function ($el) { + var method = this.options.html ? 'html' : 'text' + var errors = $el.data('bs.validator.errors') + var $group = $el.closest('.form-group') + var $block = $group.find('.help-block.with-errors') + var $feedback = $group.find('.form-control-feedback') + + if (!errors.length) return + + errors = $('
      ') + .addClass('list-unstyled') + .append($.map(errors, function (error) { return $('
    • ')[method](error) })) + + $block.data('bs.validator.originalContent') === undefined && $block.data('bs.validator.originalContent', $block.html()) + $block.empty().append(errors) + $group.addClass('has-error has-danger') + + $group.hasClass('has-feedback') + && $feedback.removeClass(this.options.feedback.success) + && $feedback.addClass(this.options.feedback.error) + && $group.removeClass('has-success') + } + + Validator.prototype.clearErrors = function ($el) { + var $group = $el.closest('.form-group') + var $block = $group.find('.help-block.with-errors') + var $feedback = $group.find('.form-control-feedback') + + $block.html($block.data('bs.validator.originalContent')) + $group.removeClass('has-error has-danger') + + $group.hasClass('has-feedback') + && $feedback.removeClass(this.options.feedback.error) + && getValue($el) + && $feedback.addClass(this.options.feedback.success) + && $group.addClass('has-success') + } + + Validator.prototype.hasErrors = function () { + function fieldErrors() { + return !!($(this).data('bs.validator.errors') || []).length + } + + return !!this.$inputs.filter(fieldErrors).length + } + + Validator.prototype.isIncomplete = function () { + function fieldIncomplete() { + return !getValue($(this)) + } + + return !!this.$inputs.filter('[required]').filter(fieldIncomplete).length + } + + Validator.prototype.onSubmit = function (e) { + this.validate() + if (this.isIncomplete() || this.hasErrors()) e.preventDefault() + } + + Validator.prototype.toggleSubmit = function () { + if (!this.options.disable) return + this.$btn.toggleClass('disabled', this.isIncomplete() || this.hasErrors()) + } + + Validator.prototype.defer = function ($el, callback) { + callback = $.proxy(callback, this, $el) + if (!this.options.delay) return callback() + window.clearTimeout($el.data('bs.validator.timeout')) + $el.data('bs.validator.timeout', window.setTimeout(callback, this.options.delay)) + } + + Validator.prototype.destroy = function () { + this.$element + .removeAttr('novalidate') + .removeData('bs.validator') + .off('.bs.validator') + .find('.form-control-feedback') + .removeClass([this.options.feedback.error, this.options.feedback.success].join(' ')) + + this.$inputs + .off('.bs.validator') + .removeData(['bs.validator.errors', 'bs.validator.deferred', 'bs.validator.previous']) + .each(function () { + var $this = $(this) + var timeout = $this.data('bs.validator.timeout') + window.clearTimeout(timeout) && $this.removeData('bs.validator.timeout') + }) + + this.$element.find('.help-block.with-errors').each(function () { + var $this = $(this) + var originalContent = $this.data('bs.validator.originalContent') + + $this + .removeData('bs.validator.originalContent') + .html(originalContent) + }) + + this.$element.find('input[type="submit"], button[type="submit"]').removeClass('disabled') + + this.$element.find('.has-error, .has-danger').removeClass('has-error has-danger') + + return this + } + + // VALIDATOR PLUGIN DEFINITION + // =========================== + + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var options = $.extend({}, Validator.DEFAULTS, $this.data(), typeof option == 'object' && option) + var data = $this.data('bs.validator') + + if (!data && option == 'destroy') return + if (!data) $this.data('bs.validator', (data = new Validator(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.validator + + $.fn.validator = Plugin + $.fn.validator.Constructor = Validator + + + // VALIDATOR NO CONFLICT + // ===================== + + $.fn.validator.noConflict = function () { + $.fn.validator = old + return this + } + + + // VALIDATOR DATA-API + // ================== + + $(window).on('load', function () { + $('form[data-toggle="validator"]').each(function () { + var $form = $(this) + Plugin.call($form, $form.data()) + }) + }) + +}(jQuery); From aa5a07d411c7e17a018f53f4f68c63d3d7bbcd35 Mon Sep 17 00:00:00 2001 From: racfop Date: Mon, 23 Jan 2023 08:27:33 -0800 Subject: [PATCH 3/5] undo commit in script/test/* --- script/test/README.md | 3 +++ .../fixtures/nginx-node-redis/node/index.js | 23 ++++++++++--------- .../nginx-node-redis/node/test/dummyTest.js | 14 +++++------ .../unused/v3/output-os-full-example.json | 2 +- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/script/test/README.md b/script/test/README.md index 305807b4ff..c69cecba4e 100644 --- a/script/test/README.md +++ b/script/test/README.md @@ -4,6 +4,9 @@ Install `jq - commandline JSON processor` with minimum version of 1.5 + ### Running tests Test running ./cmd/tests.sh + + diff --git a/script/test/fixtures/nginx-node-redis/node/index.js b/script/test/fixtures/nginx-node-redis/node/index.js index 9a924abeee..d01e517db8 100644 --- a/script/test/fixtures/nginx-node-redis/node/index.js +++ b/script/test/fixtures/nginx-node-redis/node/index.js @@ -1,10 +1,10 @@ -var express = require("express"), - http = require("http"), - redis = require("redis"); +var express = require('express'), + http = require('http'), + redis = require('redis'); var app = express(); -console.log(process.env.REDIS_PORT_6379_TCP_ADDR + ":" + process.env.REDIS_PORT_6379_TCP_PORT); +console.log(process.env.REDIS_PORT_6379_TCP_ADDR + ':' + process.env.REDIS_PORT_6379_TCP_PORT); // APPROACH 1: Using environment variables created by Docker // var client = redis.createClient( @@ -13,15 +13,16 @@ console.log(process.env.REDIS_PORT_6379_TCP_ADDR + ":" + process.env.REDIS_PORT_ // ); // APPROACH 2: Using host entries created by Docker in /etc/hosts (RECOMMENDED) -var client = redis.createClient("6379", "redis"); +var client = redis.createClient('6379', 'redis'); -app.get("/", function(req, res, next) { - client.incr("counter", function(err, counter) { - if (err) return next(err); - res.send("This page has been viewed " + counter + " times!"); + +app.get('/', function(req, res, next) { + client.incr('counter', function(err, counter) { + if(err) return next(err); + res.send('This page has been viewed ' + counter + ' times!'); }); }); http.createServer(app).listen(process.env.PORT || 8080, function() { - console.log("Listening on port " + (process.env.PORT || 8080)); -}); + console.log('Listening on port ' + (process.env.PORT || 8080)); +}); \ No newline at end of file diff --git a/script/test/fixtures/nginx-node-redis/node/test/dummyTest.js b/script/test/fixtures/nginx-node-redis/node/test/dummyTest.js index 44e60013d2..6218a87f4b 100644 --- a/script/test/fixtures/nginx-node-redis/node/test/dummyTest.js +++ b/script/test/fixtures/nginx-node-redis/node/test/dummyTest.js @@ -1,7 +1,7 @@ -var assert = require("assert"); - -describe("Dummy Test", function() { - it("should pass", function() { - assert.ok(true, "It is true!"); - }); -}); +var assert = require("assert"); + +describe('Dummy Test', function(){ + it('should pass', function(){ + assert.ok(true, "It is true!"); + }); +}); \ No newline at end of file diff --git a/script/test/fixtures/unused/v3/output-os-full-example.json b/script/test/fixtures/unused/v3/output-os-full-example.json index 1fee18eedd..8c2c92944b 100644 --- a/script/test/fixtures/unused/v3/output-os-full-example.json +++ b/script/test/fixtures/unused/v3/output-os-full-example.json @@ -374,7 +374,7 @@ } ], "restartPolicy": "OnFailure", - "terminationGracePeriodSeconds": 20, + "terminationGracePeriodSeconds": 20, "hostname": "foo", "subdomain": "foo.com" }, From d5464a273ac29ca9763db77c48edc5595d09bbc4 Mon Sep 17 00:00:00 2001 From: Patrick Rachford <64233065+rachfop@users.noreply.github.com> Date: Mon, 23 Jan 2023 08:31:59 -0800 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: AhmedGrati <48932084+AhmedGrati@users.noreply.github.com> --- docs/architecture.md | 10 +++++----- docs/development.md | 2 +- docs/installation.md | 3 +-- docs/integrations.md | 4 ++-- docs/maven-example.md | 2 +- docs/user-guide.md | 8 ++++---- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index 736b907a5b..8f9adf726e 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -11,13 +11,13 @@ redirect_from: - TOC -`kompose` has 3 stages: _Loader_, _Transformer_ and _Outputter_. Each stage should have a well-defined interface, so it is easy to write a new Loader, Transformer or Outputters and plug it in. Currently, only Loader and Transformer interfaces are defined. +`kompose` has 3 stages: _Loader_, _Transformer_ and _Outputter_. Each stage should have a well-defined interface, so it is easy to write a new Loader, Transformer, or Outputters and plug it in. Currently, only Loader and Transformer interfaces are defined. ![Design Diagram](https://github.com/kubernetes/kompose/blob/master/docs/images/design_diagram.png) ## Loader -Loader reads input file now `kompose` supports [Docker Compose](https://docs.docker.com/compose) v1, v2 and converts it to KomposeObject. +The Loader reads the input file now `kompose` supports [Docker Compose](https://docs.docker.com/compose) v1, v2 and converts it to KomposeObject. Loader is represented by a Loader interface: @@ -70,7 +70,7 @@ type ServiceConfig struct { ## Transformer -Transformer takes KomposeObject and converts it to target/output format (currently, there are sets of Kubernetes/OpenShift objects). Similar to `Loader`, Transformer is represented by a Transformer interface: +The Transformer takes KomposeObject and converts it to target/output format (currently, there are sets of Kubernetes/OpenShift objects). Similar to the `Loader`, Transformer is represented by a Transformer interface: ```go type Transformer interface { @@ -78,7 +78,7 @@ type Transformer interface { } ``` -If you wish to add more providers which contain different kind of objects, transformer would be the place to look into. Currently, Kompose supports Kubernetes (by default) and OpenShift providers. More details at: +If you wish to add more providers containing different kinds of objects, the Transformer would be the place to look into. Currently, Kompose supports Kubernetes (by default) and OpenShift providers. More details at: - [kompose/pkg/transformer](https://github.com/kubernetes/kompose/tree/master/pkg/transformer) - [kompose/pkg/transformer/Kubernetes](https://github.com/kubernetes/kompose/tree/master/pkg/transformer/kubernetes) @@ -86,4 +86,4 @@ If you wish to add more providers which contain different kind of objects, trans ## Outputter -Outputter takes Transformer result and executes the given action. For example, action can be displaying result to stdout or directly deploying artifacts to Kubernetes/OpenShift. +The Outputter takes the Transformer result and executes the given action. For example, action can display results to stdout or directly deploy artifacts to Kubernetes/OpenShift. diff --git a/docs/development.md b/docs/development.md index 0bf920e6da..821858f187 100644 --- a/docs/development.md +++ b/docs/development.md @@ -22,7 +22,7 @@ Read about building kompose [here](https://github.com/kubernetes/kompose#buildin ### Clone your fork -The commands below require that you have `$GOPATH`. We highly recommended you put Kompose code into your `$GOPATH`. +The commands below require that you have `$GOPATH`. We highly recommended you put the Kompose code into your `$GOPATH`. ```console git clone https://github.com/$YOUR_GITHUB_USERNAME/kompose.git $GOPATH/src/github.com/kubernetes/kompose diff --git a/docs/installation.md b/docs/installation.md index d1d2d32839..1ae236b976 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -73,8 +73,7 @@ sudo apt install ./kompose_1.28.0_amd64.deb ## macOS -On macOS you can install the latest release via [Homebrew](https://brew.sh) or [MacPorts](https://www.macports.org/). - +On macOS, you can install the latest release via [Homebrew](https://brew.sh) or [MacPorts](https://www.macports.org/). ```bash # Homebrew brew install kompose diff --git a/docs/integrations.md b/docs/integrations.md index cf3b647f51..da52decf89 100644 --- a/docs/integrations.md +++ b/docs/integrations.md @@ -46,9 +46,9 @@ There are some projects out there known to use Kompose integrated in some form o ### Fabric8 Maven Plugin by Red Hat -**Description:** "Maven is one of the widely used build tools for Java applications. The Fabric8 Maven Plugin is a maven extension that simplifies the deployment of Java applications to Kubernetes or OpenShift cluster. +**Description:** "Maven is one of the widely used build tools for Java applications. The Fabric8 Maven Plugin is a maven extension that simplifies the deployment of Java applications to Kubernetes or OpenShift clusters. The main task of this plugin is to build Docker images, generate Kubernetes or OpenShift resource descriptors and run/deploy the application on Kubernetes or OpenShift cluster. -Plugin has wide range of configuration options. Docker Compose is one of the option to bring up deployments on Kubernetes or OpenShift cluster. +The plugin has a wide range of configuration options. Docker Compose is one of the options to bring up deployments on Kubernetes or OpenShift clusters. Technically, Fabric8 Maven Plugin processes the external docker-compose.yml file and generates Kubernetes or OpenShift resources via Kompose." **Links:** diff --git a/docs/maven-example.md b/docs/maven-example.md index f7cfb344c2..aa195967cc 100644 --- a/docs/maven-example.md +++ b/docs/maven-example.md @@ -70,7 +70,7 @@ Add the `` and `` sections to `pom.xml` as shown in a **5. Deploy application on Kubernetes or OpenShift** -Make sure that Kubernetes/OpenShift cluster or Minikube/minishift is running. In case, if anything of this is not running, you can run minishift to test this application by using following command. +Make sure that Kubernetes/OpenShift cluster or Minikube/Minishift is running. In case, if anything of this is not running, you can run Minishift to test this application by using the following command. ```bash $ minishift start diff --git a/docs/user-guide.md b/docs/user-guide.md index 5feeaf5f9e..fdefae5735 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -87,7 +87,7 @@ INFO OpenShift file "result-deploymentconfig.yaml" created INFO OpenShift file "result-imagestream.yaml" created ``` -It also supports creating buildconfig for build directive in a service. By default, it uses the remote repo for the current git branch as the source repo, and the current branch as the source branch for the build. You can specify a different source repo and branch using `--build-repo` and `--build-branch` options respectively. +It also supports creating buildconfig for build directive in a service. By default, it uses the remote repository for the current git branch as the source repository, and the current branch as the source branch for the build. You can specify a different source repository and branch using `--build-repo` and `--build-branch` options respectively. ```sh $ kompose --provider openshift --file buildconfig/docker-compose.yml convert @@ -244,7 +244,7 @@ services: ``` - `kompose.service.expose` defines if the service needs to be made accessible from outside the cluster or not. If the value is set to "true", the provider sets the endpoint automatically, and for any other value, the value is set as the hostname. If multiple ports are defined in a service, the first one is chosen to be the exposed. - - For the Kubernetes provider, an ingress resource is created,and it is assumed that an ingress controller has already been configured. If the value is set to a comma separated list, multiple hostnames are supported.Hostname with path is also supported. + - For the Kubernetes provider, an ingress resource is created, and it is assumed that an ingress controller has already been configured. If the value is set to a comma-separated list, multiple hostnames are supported. Hostname with the path is also supported. - For the OpenShift provider, a route is created. - `kompose.service.nodeport.port` defines the port value when service type is `nodeport`, this label should only be set when the service only contains 1 port. Usually kubernetes define a port range for node port values, kompose will not validate this. - `kompose.service.expose.tls-secret` provides the name of the TLS secret to use with the Kubernetes ingress controller. This requires kompose.service.expose to be set. @@ -297,8 +297,8 @@ services: kompose.image-pull-secret: "example-kubernetes-secret" ``` -- `kompose.volume.size` defines the requests storage's size in the PersistentVolumeClaim, or you can use command line parameter `--pvc-request-size`. - The priority follow label (kompose.volume.size) > command parameter(--pvc-request-size) > defaultSize (100Mi) +- `kompose.volume.size` defines the requests storage's size in the PersistentVolumeClaim, or you can use the command line parameter `--pvc-request-size`. +- The priority follows label (kompose.volume.size) > command parameter(--pvc-request-size) > defaultSize (100Mi) For example: From 2d8c2f60d6283713046094dfd335c4cec1935752 Mon Sep 17 00:00:00 2001 From: racfop Date: Mon, 23 Jan 2023 08:34:00 -0800 Subject: [PATCH 5/5] removes webrick --- docs/Gemfile | 1 - docs/Gemfile.lock | 2 -- 2 files changed, 3 deletions(-) diff --git a/docs/Gemfile b/docs/Gemfile index d32463f15d..0a16d489af 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -30,4 +30,3 @@ gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform? gem "jekyll-redirect-from" -gem "webrick", "~> 1.7" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 63c85b7445..a5bbc4eed0 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -72,7 +72,6 @@ GEM tzinfo (>= 1.0.0) unicode-display_width (1.8.0) wdm (0.1.1) - webrick (1.7.0) PLATFORMS ruby @@ -85,7 +84,6 @@ DEPENDENCIES tzinfo (~> 1.2) tzinfo-data wdm (~> 0.1.1) - webrick (~> 1.7) BUNDLED WITH 2.4.4