From b1af3942bb10ba4f97f5594e8e27cfcc6c40cf63 Mon Sep 17 00:00:00 2001 From: Michael Ly <12224090+mitruly@users.noreply.github.com> Date: Fri, 17 Aug 2018 17:17:05 -0400 Subject: [PATCH] updated site --- api/auth-mechanism.html | 50 - api/batchchange-errors.html | 460 - api/batchchange-model.html | 285 - api/create-batchchange.html | 298 - api/create-group.html | 190 - api/create-recordset.html | 202 - api/create-zone.html | 139 - api/delete-group.html | 127 - api/delete-recordset.html | 154 - api/delete-zone.html | 126 - api/get-batchchange.html | 153 - api/get-group.html | 119 - api/get-recordset-change.html | 131 - api/get-recordset.html | 136 - api/get-zone.html | 95 - api/index.html | 15 - api/list-batchchanges.html | 144 - api/list-group-activity.html | 196 - api/list-group-admins.html | 84 - api/list-group-members.html | 129 - api/list-groups.html | 152 - api/list-recordset-changes.html | 594 - api/list-recordsets.html | 232 - api/list-zone-changes.html | 164 - api/list-zones.html | 182 - api/membership-model.html | 166 - api/recordset-model.html | 351 - api/sync-zone.html | 137 - api/update-group.html | 219 - api/update-recordset.html | 233 - api/update-zone.html | 156 - api/zone-model.html | 370 - css/codemirror.css | 347 - css/kazari-style.css | 1 - css/monokai.css | 36 - css/palette.css | 61 - css/style.css | 6192 ----- highlight/CHANGES.md | 1527 -- highlight/README.md | 150 - highlight/README.ru.md | 142 - highlight/highlight.pack.js | 2 - highlight/styles/agate.css | 108 - highlight/styles/androidstudio.css | 66 - highlight/styles/arduino-light.css | 88 - highlight/styles/arta.css | 73 - highlight/styles/ascetic.css | 45 - highlight/styles/atelier-cave-dark.css | 83 - highlight/styles/atelier-cave-light.css | 85 - highlight/styles/atelier-dune-dark.css | 69 - highlight/styles/atelier-dune-light.css | 69 - highlight/styles/atelier-estuary-dark.css | 84 - highlight/styles/atelier-estuary-light.css | 84 - highlight/styles/atelier-forest-dark.css | 69 - highlight/styles/atelier-forest-light.css | 69 - highlight/styles/atelier-heath-dark.css | 69 - highlight/styles/atelier-heath-light.css | 69 - highlight/styles/atelier-lakeside-dark.css | 69 - highlight/styles/atelier-lakeside-light.css | 69 - highlight/styles/atelier-plateau-dark.css | 84 - highlight/styles/atelier-plateau-light.css | 84 - highlight/styles/atelier-savanna-dark.css | 84 - highlight/styles/atelier-savanna-light.css | 84 - highlight/styles/atelier-seaside-dark.css | 69 - highlight/styles/atelier-seaside-light.css | 69 - highlight/styles/atelier-sulphurpool-dark.css | 69 - .../styles/atelier-sulphurpool-light.css | 69 - highlight/styles/atom-one-dark.css | 96 - highlight/styles/atom-one-light.css | 96 - highlight/styles/brown-paper.css | 64 - highlight/styles/brown-papersq.png | Bin 18198 -> 0 bytes highlight/styles/codepen-embed.css | 60 - highlight/styles/color-brewer.css | 71 - highlight/styles/darcula.css | 77 - highlight/styles/dark.css | 63 - highlight/styles/darkula.css | 6 - highlight/styles/default.css | 99 - highlight/styles/docco.css | 97 - highlight/styles/dracula.css | 76 - highlight/styles/far.css | 71 - highlight/styles/foundation.css | 88 - highlight/styles/github-gist.css | 71 - highlight/styles/github.css | 99 - highlight/styles/googlecode.css | 89 - highlight/styles/grayscale.css | 101 - highlight/styles/gruvbox-dark.css | 108 - highlight/styles/gruvbox-light.css | 108 - highlight/styles/hopscotch.css | 83 - highlight/styles/hybrid.css | 102 - highlight/styles/idea.css | 97 - highlight/styles/ir-black.css | 73 - highlight/styles/kimbie.dark.css | 74 - highlight/styles/kimbie.light.css | 74 - highlight/styles/magula.css | 70 - highlight/styles/mono-blue.css | 59 - highlight/styles/monokai-sublime.css | 83 - highlight/styles/monokai.css | 70 - highlight/styles/obsidian.css | 88 - highlight/styles/ocean.css | 74 - highlight/styles/paraiso-dark.css | 72 - highlight/styles/paraiso-light.css | 72 - highlight/styles/pojoaque.css | 83 - highlight/styles/pojoaque.jpg | Bin 1186 -> 0 bytes highlight/styles/purebasic.css | 96 - highlight/styles/qtcreator_dark.css | 83 - highlight/styles/qtcreator_light.css | 83 - highlight/styles/railscasts.css | 106 - highlight/styles/rainbow.css | 85 - highlight/styles/school-book.css | 72 - highlight/styles/school-book.png | Bin 486 -> 0 bytes highlight/styles/solarized-dark.css | 84 - highlight/styles/solarized-light.css | 84 - highlight/styles/sunburst.css | 102 - highlight/styles/tomorrow-night-blue.css | 75 - highlight/styles/tomorrow-night-bright.css | 74 - highlight/styles/tomorrow-night-eighties.css | 74 - highlight/styles/tomorrow-night.css | 75 - highlight/styles/tomorrow.css | 72 - highlight/styles/vs.css | 68 - highlight/styles/xcode.css | 93 - highlight/styles/xt256.css | 92 - highlight/styles/zenburn.css | 80 - img/favicon.png | Bin 17629 -> 0 bytes img/favicon114x114.png | Bin 19806 -> 0 bytes img/favicon120x120.png | Bin 20407 -> 0 bytes img/favicon128x128.png | Bin 19387 -> 0 bytes img/favicon144x144.png | Bin 20529 -> 0 bytes img/favicon150x150.png | Bin 21455 -> 0 bytes img/favicon152x152.png | Bin 21452 -> 0 bytes img/favicon16x16.png | Bin 2133 -> 0 bytes img/favicon196x196.png | Bin 29133 -> 0 bytes img/favicon24x24.png | Bin 8813 -> 0 bytes img/favicon310x150.png | Bin 15375 -> 0 bytes img/favicon310x310.png | Bin 33924 -> 0 bytes img/favicon32x32.png | Bin 4524 -> 0 bytes img/favicon48x48.png | Bin 12532 -> 0 bytes img/favicon57x57.png | Bin 15889 -> 0 bytes img/favicon60x60.png | Bin 16793 -> 0 bytes img/favicon64x64.png | Bin 11956 -> 0 bytes img/favicon70x70.png | Bin 16540 -> 0 bytes img/favicon72x72.png | Bin 16856 -> 0 bytes img/favicon76x76.png | Bin 17079 -> 0 bytes img/favicon96x96.png | Bin 16404 -> 0 bytes img/first_icon.png | Bin 739 -> 0 bytes img/first_icon2x.png | Bin 1355 -> 0 bytes img/jumbotron_pattern.png | Bin 233 -> 0 bytes img/jumbotron_pattern2x.png | Bin 233 -> 0 bytes img/navbar_brand.png | Bin 15519 -> 0 bytes img/navbar_brand2x.png | Bin 17629 -> 0 bytes img/poster.png | Bin 1037375 -> 0 bytes img/second_icon.png | Bin 762 -> 0 bytes img/second_icon2x.png | Bin 1663 -> 0 bytes img/sidebar_brand.png | Bin 14473 -> 0 bytes img/sidebar_brand2x.png | Bin 16856 -> 0 bytes img/third_icon.png | Bin 842 -> 0 bytes img/third_icon2x.png | Bin 1893 -> 0 bytes img/vinyldns-fulllogoDARK-300.png | Bin 19461 -> 0 bytes js/kazari.js | 21878 ---------------- js/main.js | 78 - operator/index.html | 7 - 159 files changed, 42702 deletions(-) delete mode 100644 api/auth-mechanism.html delete mode 100644 api/batchchange-errors.html delete mode 100644 api/batchchange-model.html delete mode 100644 api/create-batchchange.html delete mode 100644 api/create-group.html delete mode 100644 api/create-recordset.html delete mode 100644 api/create-zone.html delete mode 100644 api/delete-group.html delete mode 100644 api/delete-recordset.html delete mode 100644 api/delete-zone.html delete mode 100644 api/get-batchchange.html delete mode 100644 api/get-group.html delete mode 100644 api/get-recordset-change.html delete mode 100644 api/get-recordset.html delete mode 100644 api/get-zone.html delete mode 100644 api/index.html delete mode 100644 api/list-batchchanges.html delete mode 100644 api/list-group-activity.html delete mode 100644 api/list-group-admins.html delete mode 100644 api/list-group-members.html delete mode 100644 api/list-groups.html delete mode 100644 api/list-recordset-changes.html delete mode 100644 api/list-recordsets.html delete mode 100644 api/list-zone-changes.html delete mode 100644 api/list-zones.html delete mode 100644 api/membership-model.html delete mode 100644 api/recordset-model.html delete mode 100644 api/sync-zone.html delete mode 100644 api/update-group.html delete mode 100644 api/update-recordset.html delete mode 100644 api/update-zone.html delete mode 100644 api/zone-model.html delete mode 100644 css/codemirror.css delete mode 100644 css/kazari-style.css delete mode 100644 css/monokai.css delete mode 100644 css/palette.css delete mode 100644 css/style.css delete mode 100644 highlight/CHANGES.md delete mode 100644 highlight/README.md delete mode 100644 highlight/README.ru.md delete mode 100644 highlight/highlight.pack.js delete mode 100644 highlight/styles/agate.css delete mode 100644 highlight/styles/androidstudio.css delete mode 100644 highlight/styles/arduino-light.css delete mode 100644 highlight/styles/arta.css delete mode 100644 highlight/styles/ascetic.css delete mode 100644 highlight/styles/atelier-cave-dark.css delete mode 100644 highlight/styles/atelier-cave-light.css delete mode 100644 highlight/styles/atelier-dune-dark.css delete mode 100644 highlight/styles/atelier-dune-light.css delete mode 100644 highlight/styles/atelier-estuary-dark.css delete mode 100644 highlight/styles/atelier-estuary-light.css delete mode 100644 highlight/styles/atelier-forest-dark.css delete mode 100644 highlight/styles/atelier-forest-light.css delete mode 100644 highlight/styles/atelier-heath-dark.css delete mode 100644 highlight/styles/atelier-heath-light.css delete mode 100644 highlight/styles/atelier-lakeside-dark.css delete mode 100644 highlight/styles/atelier-lakeside-light.css delete mode 100644 highlight/styles/atelier-plateau-dark.css delete mode 100644 highlight/styles/atelier-plateau-light.css delete mode 100644 highlight/styles/atelier-savanna-dark.css delete mode 100644 highlight/styles/atelier-savanna-light.css delete mode 100644 highlight/styles/atelier-seaside-dark.css delete mode 100644 highlight/styles/atelier-seaside-light.css delete mode 100644 highlight/styles/atelier-sulphurpool-dark.css delete mode 100644 highlight/styles/atelier-sulphurpool-light.css delete mode 100644 highlight/styles/atom-one-dark.css delete mode 100644 highlight/styles/atom-one-light.css delete mode 100644 highlight/styles/brown-paper.css delete mode 100644 highlight/styles/brown-papersq.png delete mode 100644 highlight/styles/codepen-embed.css delete mode 100644 highlight/styles/color-brewer.css delete mode 100644 highlight/styles/darcula.css delete mode 100644 highlight/styles/dark.css delete mode 100644 highlight/styles/darkula.css delete mode 100644 highlight/styles/default.css delete mode 100644 highlight/styles/docco.css delete mode 100644 highlight/styles/dracula.css delete mode 100644 highlight/styles/far.css delete mode 100644 highlight/styles/foundation.css delete mode 100644 highlight/styles/github-gist.css delete mode 100644 highlight/styles/github.css delete mode 100644 highlight/styles/googlecode.css delete mode 100644 highlight/styles/grayscale.css delete mode 100644 highlight/styles/gruvbox-dark.css delete mode 100644 highlight/styles/gruvbox-light.css delete mode 100644 highlight/styles/hopscotch.css delete mode 100644 highlight/styles/hybrid.css delete mode 100644 highlight/styles/idea.css delete mode 100644 highlight/styles/ir-black.css delete mode 100644 highlight/styles/kimbie.dark.css delete mode 100644 highlight/styles/kimbie.light.css delete mode 100644 highlight/styles/magula.css delete mode 100644 highlight/styles/mono-blue.css delete mode 100644 highlight/styles/monokai-sublime.css delete mode 100644 highlight/styles/monokai.css delete mode 100644 highlight/styles/obsidian.css delete mode 100644 highlight/styles/ocean.css delete mode 100644 highlight/styles/paraiso-dark.css delete mode 100644 highlight/styles/paraiso-light.css delete mode 100644 highlight/styles/pojoaque.css delete mode 100644 highlight/styles/pojoaque.jpg delete mode 100644 highlight/styles/purebasic.css delete mode 100644 highlight/styles/qtcreator_dark.css delete mode 100644 highlight/styles/qtcreator_light.css delete mode 100644 highlight/styles/railscasts.css delete mode 100644 highlight/styles/rainbow.css delete mode 100644 highlight/styles/school-book.css delete mode 100644 highlight/styles/school-book.png delete mode 100644 highlight/styles/solarized-dark.css delete mode 100644 highlight/styles/solarized-light.css delete mode 100644 highlight/styles/sunburst.css delete mode 100644 highlight/styles/tomorrow-night-blue.css delete mode 100644 highlight/styles/tomorrow-night-bright.css delete mode 100644 highlight/styles/tomorrow-night-eighties.css delete mode 100644 highlight/styles/tomorrow-night.css delete mode 100644 highlight/styles/tomorrow.css delete mode 100644 highlight/styles/vs.css delete mode 100644 highlight/styles/xcode.css delete mode 100644 highlight/styles/xt256.css delete mode 100644 highlight/styles/zenburn.css delete mode 100644 img/favicon.png delete mode 100644 img/favicon114x114.png delete mode 100644 img/favicon120x120.png delete mode 100644 img/favicon128x128.png delete mode 100644 img/favicon144x144.png delete mode 100644 img/favicon150x150.png delete mode 100644 img/favicon152x152.png delete mode 100644 img/favicon16x16.png delete mode 100644 img/favicon196x196.png delete mode 100644 img/favicon24x24.png delete mode 100644 img/favicon310x150.png delete mode 100644 img/favicon310x310.png delete mode 100644 img/favicon32x32.png delete mode 100644 img/favicon48x48.png delete mode 100644 img/favicon57x57.png delete mode 100644 img/favicon60x60.png delete mode 100644 img/favicon64x64.png delete mode 100644 img/favicon70x70.png delete mode 100644 img/favicon72x72.png delete mode 100644 img/favicon76x76.png delete mode 100644 img/favicon96x96.png delete mode 100644 img/first_icon.png delete mode 100644 img/first_icon2x.png delete mode 100644 img/jumbotron_pattern.png delete mode 100644 img/jumbotron_pattern2x.png delete mode 100644 img/navbar_brand.png delete mode 100644 img/navbar_brand2x.png delete mode 100644 img/poster.png delete mode 100644 img/second_icon.png delete mode 100644 img/second_icon2x.png delete mode 100644 img/sidebar_brand.png delete mode 100644 img/sidebar_brand2x.png delete mode 100644 img/third_icon.png delete mode 100644 img/third_icon2x.png delete mode 100644 img/vinyldns-fulllogoDARK-300.png delete mode 100644 js/kazari.js delete mode 100644 js/main.js delete mode 100644 operator/index.html diff --git a/api/auth-mechanism.html b/api/auth-mechanism.html deleted file mode 100644 index 84d45be52..000000000 --- a/api/auth-mechanism.html +++ /dev/null @@ -1,50 +0,0 @@ -VinylDNS: Authentication

API Authentication

- -

The API Authentication for VinylDNS is modeled after the AWS Signature Version 4 Signing process. The AWS documentation for it can be found -here. Similar to how the AWS Signature Version 4 signing -process adds authentication information to AWS requests, VinylDNS’s API Authenticator also adds authentication information to every API request.

- -

VinylDNS API Authentication Process

- -
    -
  1. Retrieve the Authorization HTTP Header (Auth Header) from the HTTP Request Context.
  2. -
  3. Parse the retrieved Auth Header into an AWS String to Sign structure which should be in the form:
  4. -
- -
StringToSign =
-    Algorithm + \n +
-    RequestDateTime + \n +
-    CredentialScope + \n +
-    HashedCanonicalRequest
-
-
- -

String to Sign Example:

-
AWS4-HMAC-SHA256
-20150830T123600Z
-20150830/us-east-1/iam/aws4_request
-f536975d06c0309214f805bb90ccff089219ecd68b2577efef23edd43b7e1a59
-
-
-
    -
  1. Extract the access key from the Auth Header and search for the account associated with the access key.
  2. -
  3. Validate the signature of the request.
  4. -
  5. Build the authentication information, which essentially contains all the authorized accounts for the signed in user.
  6. -
- -

Authentication Failure Response

- -

If any these validations fail, a 401 (Unauthorized) or a 403 (Forbidden) error will be thrown; otherwise unanticipated exceptions will simply bubble out and result as 500s or 503s.

- -
    -
  1. If the Auth Header is not found, then a 401 (Unauthorized) error is returned.
  2. -
  3. If the Auth Header cannot be parsed, then a 403 (Forbidden) error is returned.
  4. -
  5. If the access key cannot be found, then a 401 (Unauthorized) error is returned.
  6. -
  7. If the request signature cannot be validated, then a 403 (Forbidden) error is returned.
  8. -
-
\ No newline at end of file diff --git a/api/batchchange-errors.html b/api/batchchange-errors.html deleted file mode 100644 index 00d0202bf..000000000 --- a/api/batchchange-errors.html +++ /dev/null @@ -1,460 +0,0 @@ -VinylDNS: Batch Change Errors

Batch Change Errors

-
    -
  1. By-Change Accumulated Errors
  2. -
  3. Full-Request Errors
  4. -
- -

BY-CHANGE ACCUMULATED ERRORS

- -

Since all of the batch changes are being validated simultaneously, it is possible to encounter a variety of errors for a given change. Each change that is associated with errors will have its own list of errors containing one or more errors; any changes without the errors list have been fully validated and are good to submit. If any change in the batch is deemed invalid for any reason, no changes in the batch will be applied. These types of errors will probably account for the majority of errors that users encounter.

- -

By-change accumulated errors are errors that get collected at different validation stages and correspond to individual change inputs. By-change accumulated errors are grouped into the following stages:

- -
    -
  • Independent input validations: Validate invalid data input formats and values.
  • -
  • Record and zone discovery: Resolve record and zone from fully-qualified input name.
  • -
  • Dependent context validations: Check for sufficient user access and conflicts with existing records or other submissions within the batch.
  • -
- -

Since by-change accumulated errors are collected at different stages, errors at later stages may exist but will not appear unless errors at earlier stages are addressed.

- -

EXAMPLE ERROR RESPONSE BY CHANGE

- -
[
-   {
-      "changeType": "Add",
-      "inputName": "good-A.another.example.com.",
-      "type": "A",
-      "ttl": 200,
-      "record": {
-        "address": "1.2.3.4"
-      }
-   },
-   {
-      "changeType": "Add",
-      "inputName": "duplicate.example.com",
-      "type": "CNAME",
-      "ttl": 200,
-      "record": {
-         "cname": "test.example.com."
-      },
-      "errors": [
-         "Record with name "duplicate.example.com." is not unique in the batch change. CNAME record cannot use duplicate name."
-      ]
-   },
-   {
-      "changeType": "Add",
-      "inputName": "duplicate.example.com",
-      "type": "A",
-      "ttl": 300,
-      "record": {
-         "address": "1.2.3.4"
-      }
-   },
-   {
-      "changeType": "Add",
-      "inputName": "bad-ttl-and-invalid-name$.sample.com.”,
-      "type": "A",
-      "ttl": 29,
-      "record": {
-         "address": "1.2.3.4"
-      },
-      "errors": [
-         "Failed validation 29, TTL must be between 30 and 2147483647.",
-         "Failed validation bad-ttl-and-invalid-name$.sample.com., valid domain names are a series of one or more labels joined by dots and terminate on a dot."
-      ]
-   }
-]
-
-
- -

By-Change Errors

- -
    -
  1. Invalid Domain Name
  2. -
  3. Invalid Length
  4. -
  5. Invalid Record Type
  6. -
  7. Invalid IPv4 Address
  8. -
  9. Invalid IPv6 Address
  10. -
  11. Invalid IP Address
  12. -
  13. Invalid TTL
  14. -
  15. Invalid Batch Record Type
  16. -
  17. Zone Discovery Failed
  18. -
  19. Record Already Exists
  20. -
  21. Record Does Not Exist
  22. -
  23. CNAME Conflict
  24. -
  25. User Is Not Authorized
  26. -
  27. Record Name Not Unique In Batch Change
  28. -
  29. Invalid Record Type In Reverse Zone
  30. -
- -

1. Invalid Domain Name

- -
Error Message:
- -
Invalid domain name: "<input>", valid domain names must be letters, numbers, and hyphens, joined by dots, and terminate with a dot.
-
-
- -
Details:
- -

Fully qualified domain names, must be comprised of labels, separated by dots. -A label is a combination of letters, digits, and hyphens. -They must also be absolute, which means they end with a dot.

- -

Syntax:

- -
<domain> ::= <subdomain> | " "
-
-<subdomain> ::= <label> | <subdomain> "." <label>
-
-<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
-
-<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
-
-<let-dig-hyp> ::= <let-dig> | "-"
-
-<let-dig> ::= <letter> | <digit>
-
-<letter> ::= any one of the 52 alphabetic characters A through Z in
-upper case and a through z in lower case
-
-<digit> ::= any one of the ten digits 0 through 9
-
-
- -

More info can be found at:

- -

RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, Section 2.3.1. Preferred name syntax

- -

2. Invalid Length

- -
Error Message:
- -
Invalid length: "<input>", length needs to be between <minLengthInclusive> and <maxLengthInclusive> characters.
-
-
- -
Details:
- -

The length of the input did not fit in the range in [minLengthInclusive, maxLengthInclusive].

- -

3. Invalid Record Type

- -
Error Message:
- -
Invalid record type: "<input>", valid record types include <valid record types>.
-
-
- -
Details:
- -

The record type input must match one of the valid record types. Not all DNS record types are currently supported.

- -

4. Invalid IPv4 Address

- -
Error Message:
- -
Invalid IPv4 address: "<input>"
-
-
- -
Details:
- -

The IPv4 address input is not a valid IPv4 address. Accepted inputs must be in dotted-decimal notation, with four -groups of three decimal digits, separated by periods. Leading zeros in groups can be omitted.

- -

Range: 0.0.0.0 - 255.255.255.255

- -

Examples:

- -
    -
  • 1.1.1.1
  • -
  • 10.234.0.62
  • -
- -

5. Invalid IPv6 Address

- -
Error Message:
- -
Invalid IPv6 address: "<input>".
-
-
- -
Details:
- -

The IPv6 address input is not a valid IPv6 address. Accepted inputs must be eight groups of four hexadecimal digits, -separated by colons. Leading zeros in groups can be emitted. Consecutive groups of all zeros can be replaced by a double colon.

- -

Range: 0000:0000:0000:0000:0000:0000:0000:0000 - ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

- -

Examples:

- -
    -
  • 2001:0db8:0000:0000:0000:ff00:0042:8329
  • -
  • 2001:0db8::ff00:0042:8329
  • -
  • 2001:db8::ff00:42:8329
  • -
- -

6. Invalid IP Address

- -
Error Message:
- -
Invalid IP address: "<input>".
-
-
- -
Details:
- -

The IP address input is not a valid IPv4 or IPv6 address.

- -

7. Invalid TTL

- -
Error Message:
- -
Invalid TTL: "<input>", must be a number between 30 and 2147483647.
-
-
- -
Details:
- -

Time-to-live must be a number in the range [30, 2147483647].

- -

8. Invalid Batch Record Type

- -
Error Message:
- -
Invalid Batch Record Type: "<input>", valid record types for batch changes include <valid record types>.
-
-
- -
Details:
- -

The DNS record type is not currently supported for batch changes.

- -

9. Zone Discovery Failed

- -
Error Message:
- -
Zone Discovery Failed: zone for "<input>" does not exist in VinylDNS. If zone exists, then it must be created in VinylDNS.
-
-
- -
Details:
- -

Given an inputName, VinylDNS will determine the record and zone name for the requested change. For most records, the record -names are the same as the zone name (apex), or split at at the first ‘.’, so the inputName ‘rname.zone.name.com’ will be split -into record name ‘rname’ and zone name ‘zone.name.com’ (or ‘rname.zone.name.com’ for both the record and zone name if it’s an apex record). -For PTR records, there is logic to determine the appropriate reverse zone from the given IP address.

- -

If this logic cannot find a matching zone in VinylDNS, you will see this error. -In that case, you need to connect to the zone in VinylDNS. -Even if the zone already exists outside of VinylDNS, it has to be added to VinylDNS to modify records.

- -

10. Record Already Exists

- -
Error Message:
- -
Record "<input>" Already Exists: cannot add an existing record; to update it, issue a DeleteRecordSet then an Add.
-
-
- -
Details:
- -

A record with the given name already exists, and cannot be duplicated for the given type.

- -

11. Record Does Not Exist

- -
Error Message:
- -
Record "<input>" Does Not Exist: cannot delete a record that does not exist.
-
-
- -
Details:
- -

A record with the given name could not be found in VinylDNS. -If the record exists in DNS, then you should sync the zone for that record to bring VinylDNS up to date with what is in the DNS backend.

- -

12. CNAME Conflict

- -
Error Message:
- -
CNAME conflict: CNAME record names must be unique. Existing record with name "<name>" and type "<type>" conflicts with this record.
-
-
- -
Details:
- -

A CNAME record with the given name already exists. CNAME records must have unique names.

- -

13. User Is Not Authorized

- -
Error Message:
- -
User "<user>" is not authorized.
-
-
- -
Details:
- -

User must either be in the admin group for the zone being changed, or have an ACL rule.

- -

14. Record Name Not Unique In Batch Change

- -
Error Message:
- -
Record "<name>" Name Not Unique In Batch Change: cannot have multiple "<type>" records with the same name.
-
-
- -
Details:
- -

Certain record types do not allow multiple records with the same name. If you get this error, it means you have -illegally input two or more records with the same name and one of these types.

- -

15. Invalid Record Type In Reverse Zone

- -
Error Message:
- -
Invalid Record Type In Reverse Zone: record with name "<name>" and type "<type>" is not allowed in a reverse zone.
-
-
- -
Details:
- -

Not all record types are allowed in a DNS reverse zone. The given type is not supported.

- -

FULL-REQUEST ERRORS

- -

Fail-request errors cause the batch change processing to abort immediately upon encounter.

- -
    -
  1. Batch Change Is Empty
  2. -
  3. Change Limit Exceeded
  4. -
  5. Batch Change Not Found
  6. -
  7. Malformed JSON Errors
  8. -
- -

1. BATCH CHANGE IS EMPTY

- -
HTTP RESPONSE CODE
- - - - - - - - - - - - - - -
Codedescription
422Unprocessable Entity - the batch does not contain any changes, thus cannot be processed.
- -
ERROR MESSAGE:
- -
Batch change contained no changes. Batch change must have at least one change, up to a maximum of <limit> changes.
-
-
- -
DETAILS:
- -

There were no changes found in the create batch change request. A batch must contain at least one change and no more than 20 changes.

- -

2. CHANGE LIMIT EXCEEDED

- -
HTTP RESPONSE CODE
- - - - - - - - - - - - - - -
Codedescription
413Request Entity Too Large - the batch size exceeds the maximum number of single changes, currently set to 20.
- -
ERROR MESSAGE:
- -
Cannot request more than <limit> changes in a single batch change request
-
-
- -
DETAILS:
- -

The number of change inputs in the create batch change request exceeds the max change input limit threshold, which is currently set to 20.

- -

3. BATCH CHANGE NOT FOUND

- -
HTTP RESPONSE CODE
- - - - - - - - - - - - - - -
Codedescription
404Not Found - batch change not found for specified ID in get batch change request.
- -
ERROR MESSAGE:
- -
Batch change with id <id> cannot be found
-
-
- -
DETAILS:
- -

The batch ID specified in the get batch change request does not exist.

- -

4. MALFORMED JSON ERRORS

- -
DETAILS:
- -

If there are issues with the JSON provided in a batch change request, errors will be returned (not in a by-change format) and none of the batch change validations will run.

- -
EXAMPLE ERROR MESSAGES:
- -
{
-   "errors": [
-      "Missing BatchChangeInput.changes"
-   ]
-}
-
-{
-   "errors": [
-      "Missing BatchChangeInput.changes.inputName",
-      "Missing BatchChangeInput.changes.type",
-      "Missing BatchChangeInput.changes.ttl"
-   ]
-}
-
-{
-   "errors": [
-      “Invalid RecordType”
-   ]
-}
-
-
-
\ No newline at end of file diff --git a/api/batchchange-model.html b/api/batchchange-model.html deleted file mode 100644 index ef0a62475..000000000 --- a/api/batchchange-model.html +++ /dev/null @@ -1,285 +0,0 @@ -VinylDNS: Batch Change Model

Batch Change Model

- -

Table of Contents

- - - -

BATCH CHANGE INFORMATION

- -

Batch change is an alternative to submitting individual RecordSet changes and provides the following:

- -
    -
  • The ability to accept multiple changes in a single API call.
  • -
  • The ability to include records of multiple record types across multiple zones.
  • -
  • Input names are entered as fully-qualified domain names (or IP addresses for PTR records), so users don’t have to think in record/zone context.
  • -
  • All record validations are processed simultaneously. Errors for any change in the batch will result in a 400 response and none will be applied.
  • -
- -

A batch change consists of multiple single changes which can be a combination of SingleAddChanges and SingleDeleteChanges.

- -

To update an existing record, you must delete the record first and add the record again with the updated changes.

- -

Batch changes are also susceptible to the following restrictions:

-
    -
  • Current supported record types for batch change are: A, AAAA, CNAME, and PTR.
  • -
  • Batch change requests must contain at least one change.
  • -
  • The maximum number of single changes within a batch change is currently set to 20.
  • -
  • Access permissions will follow existing rules (admin group or ACL access). Note that an update (delete and add of the same record name, zone and record type combination) requires Write access.
  • -
- -

BATCH CHANGE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
userIdstringThe unique identifier of the user that created the batch change.
userNamestringThe username of the user that created the batch change.
commentsstringOptional comments about the batch change.
createdTimestampdate-timeThe timestamp (in GMT) when the batch change was created.
changesArray of SingleChangeArray of single changes within a batch change. A SingleChange can either be a SingleAddChange or a SingleDeleteChange.
statusBatchChangeStatusPending - at least one change in batch in still in pending state; Complete - all changes are in complete state; Failed - all changes are in failure state; PartialFailure - some changes have failed and the rest are complete.
idstringThe unique identifier for this batch change.
- -

SINGLE CHANGE ATTRIBUTES

- -

A successful batch change response consists of a corresponding SingleAddChange or SingleDeleteChange for each batch change input. See the batch change create page for details on constructing a batch change request.

- -

SingleAddChange

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
changeTypeChangeInputTypeType of change input. Can either be an Add or DeleteRecordSet.
inputNamestringThe fully-qualified domain name of the record which was provided in the create batch request.
typeRecordTypeType of DNS record, supported records for batch changes are currently: A, AAAA, CNAME, and PTR.
ttllongThe time-to-live in seconds.
recordRecordDataThe data added for this record, which varies by record type.
statusSingleChangeStatusStatus for this change. Can be one of: Pending, Complete or Failed.
recordNamestringThe name of the record. Record names for the apex will be match the zone name (including terminating dot).
zoneNamestringThe name of the zone.
zoneIdstringThe unique identifier for the zone.
systemMessagestringConditional: Returns system message relevant to corresponding batch change input.
recordChangeIdstringConditional: The unique identifier for the record change; only returned on successful batch creation.
recordSetIdstringConditional: The unique identifier for the record set; only returned on successful batch creation,
idstringThe unique identifier for this change.
- -

SingleDeleteChange

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
changeTypeChangeInputTypeType of change input. Can either be an Add or DeleteRecordSet.
inputNamestringThe fully-qualified domain name of the record which was provided in the create batch request.
typeRecordTypeType of DNS record, supported records for batch changes are currently: A, AAAA, CNAME, and PTR.
statusSingleChangeStatusStatus for this change. Can be one of: Pending, Complete or Failed.
recordNamestringThe name of the record. Record names for the apex will be match the zone name (including terminating dot).
zoneNamestringThe name of the zone.
zoneIdstringThe unique identifier for the zone.
systemMessagestringConditional: Returns system message relevant to corresponding batch change input.
recordChangeIdstringConditional: The unique identifier for the record change; only returned on successful batch creation.
recordSetIdstringConditional: The unique identifier for the record set; only returned on successful batch creation,
idstringThe unique identifier for this change.
- -

BATCH CHANGE EXAMPLE

- -

Successful batch change response example with a SingleAddChange and a SingleDeleteChange.

- -
{
-    "userId": "vinyl", 
-    "userName": "vinyl201", 
-    "comments": "this is optional", 
-    "createdTimestamp": "2018-05-08T18:46:34Z", 
-    "changes": [
-        {
-            "changeType": "Add",
-            "inputName": "recordName.zoneName.", 
-            "type": "A", 
-            "ttl": 3600,  
-            "record": {
-                "address": "1.1.1.1"
-            },
-            "status": "Pending", 
-            "recordName": "recordName", 
-            "zoneName": "zoneName.", 
-            "zoneId": "8f8f649f-998e-4428-a029-b4ba5f5bd4ca",
-            "recordChangeId": "4754ac4c-5f81-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "4754b084-5f81-11e8-9c2d-fa7ae01bbebc",
-            "id": "17350028-b2b8-428d-9f10-dbb518a0364d"
-        }, 
-        {
-            "changeType": "DeleteRecordSet",
-            "inputName": "recordName.zoneName.", 
-            "type": "AAAA", 
-            "status": "Pending", 
-            "recordName": "recordName", 
-            "zoneName": "zoneName.", 
-            "zoneId": "9cbdd3ac-9752-4d56-9ca0-6a1a14fc5562",
-            "recordChangeId": "4754b322-5f81-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "4754b084-5f81-11e8-9c2d-fa7ae01bbebc",
-            "id": "c29d33e4-9bee-4417-a99b-6e815fdeb748"
-        }
-    ], 
-    "status": "Pending", 
-    "id": "937191c4-b1fd-4ab5-abb4-9553a65b44ab"
-}
-
-
-
\ No newline at end of file diff --git a/api/create-batchchange.html b/api/create-batchchange.html deleted file mode 100644 index db13558d9..000000000 --- a/api/create-batchchange.html +++ /dev/null @@ -1,298 +0,0 @@ -VinylDNS: Create Batch Change

Create Batch Change

- -

Creates a batch change with SingleAddChanges and/or SingleDeleteChanges across different zones. A delete and add of the same record will be treated as an update on that record set. Regardless of the input order in the batch change, all deletes for the same recordset will be logically applied before the adds.

- -

Current supported record types for creating a batch change are: A, AAAA, CNAME, and PTR. A batch must contain at least one change and no more than 20 changes.

- -

HTTP REQUEST

- -
-

POST /zones/batchrecordchanges

-
- -

Note that the batch change request inputs are a subset of the full batch change model.

- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
commentsstringnoOptional comments about the batch change.
changesArray of ChangeInputyesSet of ChangeInputs in the batch change. A ChangeInput is an AddChangeInput or DeleteChangeInput. Type is inferred from specified changeType.
- -
AddChangeInput
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
changeTypeChangeInputTypeyesType of change input. Must be set to Add for AddChangeInput.
inputNamestringyesThe fully qualified domain name of the record being added. For PTR, the input name is a valid IPv4 or IPv6 address.
typeRecordTypeyesType of DNS record. Supported records for batch changes are currently: A, AAAA, CNAME, and PTR.
ttllongyesThe time-to-live in seconds. The minimum and maximum values are 30 and 2147483647, respectively.
recordRecordDatayesThe data for the record.
- -
DeleteChangeInput
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
changeTypeChangeInputTypeyesType of change input. Must be DeleteRecordSet for DeleteChangeInput.
inputNamestringyesThe fully qualified domain name of the record being deleted.
typeRecordTypeyesType of DNS record. Supported records for batch changes are currently: A, AAAA, CNAME, and PTR.
- -

EXAMPLE HTTP REQUEST

-
{
-    "comments": "this is optional",
-    "changes": [
-        {
-            "inputName": "example.com.",
-            "changeType": "Add",
-            "type": "A",  
-            "ttl": 3600, 
-            "record": {
-                "address": "1.1.1.1"
-            } 
-        }, 
-        {
-            "inputName": "192.0.2.195",
-            "changeType": "Add",
-            "type": "PTR", 
-            "ttl": 3600,
-            "record": {
-                "ptrdname": "ptrdata.data."
-            }
-        }, 
-        {
-            "inputName": "cname.example.com.",
-            "changeType": "DeleteRecordSet",
-            "type": "CNAME"
-        }, 
-        {
-            "inputName": "update.another.example.com.",
-            "changeType": "DeleteRecordSet",
-            "type": "AAAA"
-        }, 
-        {
-            "inputName": "update.another.example.com.",
-            "changeType": "Add",
-            "type": "AAAA", 
-            "ttl": 4000,
-            "record": {
-                "address": "1:2:3:4:5:6:7:8"
-            }
-        }
-    ]
-}
-
-
- -

The first two items in the changes list are SingleAddChanges of an A record and a PTR record. Note that for the PTR record, the inputName is a valid IP address. The third item is a delete of a CNAME record. The last two items represent an update (delete & add) of an AAAA record with the fully qualified domain name “update.another.example.com.”.

- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
202Accepted - The batch change is queued and is returned in the response body.
400Bad Request - Error in the batch change. See Batch Change Errors page.
403Forbidden - The user does not have the access required to perform the action.
413Request Entity Too Large - Cannot request more than 20 changes in a single batch change request.
422Unprocessable Entity - the batch does not contain any changes, thus cannot be processed.
- -

A batch change goes through numerous validations before it is processed. This results in corresponding BadRequest or error responses. View the full list of batch change errors here.

- -

HTTP RESPONSE ATTRIBUTES

- -

On success, the response from create batch change includes the fields the user input, as well as some additional information provided by the system. This response is the same as that of get batch change.

- -

EXAMPLE RESPONSE

- -
{
-    "userId": "vinyl", 
-    "userName": "vinyl201", 
-    "comments": "this is optional", 
-    "createdTimestamp": "2018-05-09T14:19:34Z", 
-    "changes": [
-        {
-            "changeType": "Add",
-            "inputName": "example.com.", 
-            "type": "A", 
-            "ttl": 3600, 
-            "record": {
-                "address": "1.1.1.1"
-            }, 
-            "status": "Pending", 
-            "recordName": "example.com.", 
-            "zoneName": "example.com.", 
-            "zoneId": "74e93bfc-7296-4b86-83d3-1ffcb0eb3d13",
-            "recordChangeId": "255063ce-5f82-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "25506676-5f82-11e8-9c2d-fa7ae01bbebc",
-            "id": "7573ca11-3e30-45a8-9ba5-791f7d6ae7a7"
-        }, 
-        {
-            "changeType": "Add",
-            "inputName": "192.0.2.195", 
-            "type": "PTR", 
-            "ttl": 3600, 
-            "record": {
-                "ptrdname": "ptrdata.data."
-            }, 
-            "status": "Pending", 
-            "recordName": "195", 
-            "zoneName": "2.0.192.in-addr.arpa.", 
-            "zoneId": "7fd52634-5a0c-11e8-9c2d-fa7ae01bbebc",
-            "recordChangeId": "25506a9a-5f82-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "25506c84-5f82-11e8-9c2d-fa7ae01bbebc",
-            "id": "bece5338-5a0c-11e8-9c2d-fa7ae01bbebc"
-        }, 
-        {
-            "changeType": "DeleteRecordSet", 
-            "inputName": "cname.example.com.", 
-            "type": "CNAME", 
-            "status": "Pending",
-            "recordName": "cname", 
-            "zoneName": "example.com.", 
-            "zoneId": "74e93bfc-7296-4b86-83d3-1ffcb0eb3d13",
-            "recordChangeId": "25506ee6-5f82-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "25506676-5f82-11e8-9c2d-fa7ae01bbebc",
-            "id": "02048500-5a0d-11e8-a10f-fa7ae01bbebc" 
-        }, 
-        {
-            "changeType": "DeleteRecordSet",
-            "inputName": "update.example.com.", 
-            "type": "AAAA", 
-            "status": "Pending",
-            "recordName": "update", 
-            "zoneName": "example.com.", 
-            "zoneId": "74e93bfc-7296-4b86-83d3-1ffcb0eb3d13",
-            "recordChangeId": "25507238-5f82-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "25506676-5f82-11e8-9c2d-fa7ae01bbebc",
-            "id": "1cee1c78-5a0d-11e8-9c2d-fa7ae01bbebc" 
-        }, 
-        {
-            "changeType": "Add",
-            "inputName": "update.another.example.com.", 
-            "type": "AAAA", 
-            "ttl": 3600, 
-            "record": {
-                "address": "1:2:3:4:5:6:7:8"
-            }, 
-            "status": "Pending", 
-            "recordName": "update", 
-            "zoneName": "another.example.com.", 
-            "zoneId": "7fd52634-5a0c-11e8-9c2d-fa7ae01bbebc",
-            "recordChangeId": "25507490-5f82-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "25506842-5f82-11e8-9c2d-fa7ae01bbebc",
-            "id": "43dd1226-5a0d-11e8-9c2d-fa7ae01bbebc"
-        }
-    ], 
-    "status": "Pending", 
-    "id": "02bd95f4-a32c-443b-82eb-54dbaa55b31a"
-}
-
-
-
\ No newline at end of file diff --git a/api/create-group.html b/api/create-group.html deleted file mode 100644 index f7b963412..000000000 --- a/api/create-group.html +++ /dev/null @@ -1,190 +0,0 @@ -VinylDNS: Create Group

Create Group

- -

Creates a Group in VinylDNS

- -

HTTP REQUEST

- -
-

POST /groups

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
namestringyesThe name of the group. Should be one word, use hyphens if needed but no spaces
emailstringyesThe email distribution list for the group
descriptionstringnoA short description of the group if more info is needed other than the name
membersArray of User id objectsyesSet of User ids in the group
adminsArray of User id objectsyesSet of User ids that are admins of the group. All admin user ids should also be in the members array
- -

EXAMPLE HTTP REQUEST

- -
{
-  "name": "some-group",
-  "email": "test@example.com",
-  "description": "an example group", 
-  "members": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    }
-  ],
-  "admins": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    }
-  ]
-}
-
-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The group has been created and the group info is returned in the response body
400Bad Request - The group was invalid
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
404Not Found - A user id was not found
409Conflict - A group with the same name already exists
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
idstringUnique UUID of the group
namestringThe name of the group
emailstringThe email distribution list of the group
descriptionstringThe group description, the group will not have this attribute if it was not included in the create request
createdstringThe time (GMT) the group was created
statusstringActive or Deleted, in this case Active
membersArray of User Id objectsIds of members of the group including admins
adminsArray of User Id objectsIds of admins of the group
- -

EXAMPLE RESPONSE

- -
{
-  "id": "6f8afcda-7529-4cad-9f2d-76903f4b1aca",
-  "name": "some-group",
-  "email": "test@example.com",
-  "description": "an example group",
-  "created": "2017-03-02T15:29:21Z",
-  "status": "Active",
-  "members": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    }
-  ],
-  "admins": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    }
-  ]
-}
-
-
-
\ No newline at end of file diff --git a/api/create-recordset.html b/api/create-recordset.html deleted file mode 100644 index 28be8bfa3..000000000 --- a/api/create-recordset.html +++ /dev/null @@ -1,202 +0,0 @@ -VinylDNS: Create RecordSet

Create RecordSet

- -

Creates a RecordSet in a specified zone

- -

HTTP REQUEST

- -
-

POST /zones/{zoneId}/recordsets

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
zoneIdstringyesid of the zone where the recordset belongs
namestringyesthe name of the recordset being updated
typestringyesthe type of recordset
ttlintegeryesthe TTL in seconds
recordsarray of record datayesrecord data for recordset, see RecordSet Model
- -

EXAMPLE HTTP REQUEST

-
{
-  "name": "foo",
-  "type": "A",
-  "ttl": 300,
-  "records": [
-    {
-      "address": "10.10.10.10"
-    }
-  ],
-  "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c"
-}
-
-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
202Accepted - The record set is valid and has been accepted for processing; the record set change resource is returned
400Bad Request - The zone specified is not Active; typically because the zone has no connection information
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - the zone with the id specified was not found
409Conflict - A record set with the same name and type already exists in the zone
422Unprocessable Entity
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zonemapcontains information about the zone when the change was created
recordSetmapcontains the recordset model
userIdstringthe user id that initiated the change
changeTypestringtype of change requested (Create, Update, Delete); in this case Create
createdstringthe time (GMT) the change was initiated
idstringthe id of the change. This is not the id of the recordset
- -

EXAMPLE RESPONSE

- -
{
-  "zone": {
-    "name": "vinyl.",
-    "email": "test@test.com",
-    "status": "Active",
-    "created": "2017-02-23T14:52:44Z",
-    "id": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-    "shared": false,
-    "acl": {
-      "rules": [
-
-      ]
-    },
-    "adminGroupId": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae"
-  },
-  "recordSet": {
-    "type": "A",
-    "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "name": "foo",
-    "ttl": 300,
-    "status": "Pending",
-    "created": "2017-02-23T14:58:54Z",
-    "records": [
-      {
-        "address": "10.10.10.10"
-      }
-    ],
-    "id": "9a41b99c-8e67-445f-bcf3-f9c7cd1f2357",
-    "account": "0215d410-9b7e-4636-89fd-b6b948a06347"
-  },
-  "userId": "0215d410-9b7e-4636-89fd-b6b948a06347",
-  "changeType": "Create",
-  "status": "Pending",
-  "created": "2017-02-23T14:58:54Z",
-  "id": "fef81f0b-f439-462d-88df-c773d3686c9b"
-}
-
-
-
\ No newline at end of file diff --git a/api/create-zone.html b/api/create-zone.html deleted file mode 100644 index c02d13153..000000000 --- a/api/create-zone.html +++ /dev/null @@ -1,139 +0,0 @@ -VinylDNS: Create Zone

Create Zone

- -

Connects user to an existing zone. User must be a member of the group that has access to the zone. Connection info is optional, -if no info is provided the default VinylDNS connections will be used

- -

HTTP REQUEST

- -
-

POST /zones

-
- -

HTTP REQUEST PARAMS

- - - - - - - -
zone fields - adminGroupId, name, and email are required - refer to zone model
- -

EXAMPLE HTTP REQUEST

-
{
-  "adminGroupId": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-  "name": "dummy.",
-  "email": "test@example.com"
-}
-
-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
202Accepted - The zone change is queued and is returned in the response body
400Bad Request - Connection failed, or group did not have access to the zone
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - the user does not have the access required to perform the action
409Conflict - Zone already connected to
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
statusstringstatus of zone change
zonemaprefer to zone model
createdstringthe time (GMT) the change was initiated
changeTypestringtype of change requested (Create, Update, Sync, Delete); in this case Create
userIdstringthe user id that initiated the change
idstringthe id of the change. This is not the id of the zone
- -

EXAMPLE RESPONSE

- -
{
-  "status": "Pending",
-  "zone": {
-    "status": "Pending",
-    "account": "test_group",
-    "name": "488e6063-7832-40f6-87d3-87dae50c690a.",
-    "created": "2016-12-28T18:00:32Z",
-    "adminGroupId": "test-group-id",
-    "email": "test@test.com",
-    "shared": false,
-    "acl": {
-      "rules": [
-
-      ]
-    },
-    "id": "8ba20b72-cfdb-49d3-9216-9100aeaee7fc"
-  },
-  "created": "2016-12-28T18:00:32Z",
-  "changeType": "Create",
-  "userId": "vinyl",
-  "id": "dd449c27-bed5-4cd5-95e6-4c54fb20d930"
-}
-
-
-
\ No newline at end of file diff --git a/api/delete-group.html b/api/delete-group.html deleted file mode 100644 index f6297ef56..000000000 --- a/api/delete-group.html +++ /dev/null @@ -1,127 +0,0 @@ -VinylDNS: Delete Group

Delete Group

- -

Deletes a Group in VinylDNS

- -

HTTP REQUEST

- -
-

DELETE /groups/{groupId}

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The group has been delete and the group info is returned in the response body
400Bad Request - The group could not be deleted
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - The group was not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
idstringUnique UUID of the group
namemapThe name of the group
emailstringThe email distribution list of the group
descriptionstringThe group description, the group will not have this attribute if it was not set
createdstringThe time (GMT) the group was created
statusstringActive or Deleted, in this case Deleted
membersArray of User Id objectsIds of members of the group including admins
adminsArray of User Id objectsIds of admins of the group
- -

EXAMPLE RESPONSE

- -
{
-  "id": "6f8afcda-7529-4cad-9f2d-76903f4b1aca",
-  "name": "some-group",
-  "email": "test@example.com",
-  "created": "2017-03-02T15:29:21Z",
-  "status": "Deleted",
-  "members": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    },
-    {
-      "id": "c8630ebc-0af2-4c9a-a0a0-d18c590ed03e"
-    }
-  ],
-  "admins": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    }
-  ]
-}
-
-
-
\ No newline at end of file diff --git a/api/delete-recordset.html b/api/delete-recordset.html deleted file mode 100644 index eaada5ae3..000000000 --- a/api/delete-recordset.html +++ /dev/null @@ -1,154 +0,0 @@ -VinylDNS: Delete RecordSet

Delete RecordSet

- -

Delete a RecordSet in a specified zone

- -

HTTP REQUEST

- -
-

DELETE /zones/{zoneId}/recordsets/{recordSetId}

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
202Accepted - the delete is valid and has been accepted for processing; the record set change resource is returned in the response body
400Bad Request - the zone being updated is not active; typically because the connection information does not exist for the zone
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - Zone or RecordSet not found
409Conflict - There is an existing pending change against this zone
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zonemapcontains information about the zone when the change was created
recordSetmapcontains the recordset model
userIdstringthe user id that initiated the change
changeTypestringtype of change requested (Create, Update, Delete); in this case Delete
createdstringthe time (GMT) the change was initiated
idstringthe id of the change. This is not the id of the recordset
- -

EXAMPLE RESPONSE

- -
{
-  "zone": {
-    "name": "vinyl.",
-    "email": "test@test.com",
-    "status": "Active",
-    "created": "2017-02-23T14:52:44Z",
-    "updated": "2017-02-23T15:12:33Z",
-    "id": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-    "shared": false,
-    "acl": {
-      "rules": []
-    },
-    "adminGroupId": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-    "latestSync": "2017-02-23T15:12:33Z"
-  },
-  "recordSet": {
-    "type": "A",
-    "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "name": "foo",
-    "ttl": 38400,
-    "status": "PendingDelete",
-    "created": "2017-02-23T15:12:33Z",
-    "updated": "2017-02-23T15:18:27Z",
-    "records": [
-      {
-        "address": "2.2.2.2"
-      }
-    ],
-    "id": "da57c384-d6e8-4166-986d-2ca9d483f760",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae"
-  },
-  "userId": "0215d410-9b7e-4636-89fd-b6b948a06347",
-  "changeType": "Delete",
-  "status": "Pending",
-  "created": "2017-02-23T15:18:27Z",
-  "updates": {
-    "type": "A",
-    "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "name": "foo",
-    "ttl": 38400,
-    "status": "Active",
-    "created": "2017-02-23T15:12:33Z",
-    "records": [
-      {
-        "address": "2.2.2.2"
-      }
-    ],
-    "id": "da57c384-d6e8-4166-986d-2ca9d483f760",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae"
-  },
-  "id": "c46cf622-285f-4f1b-b5b2-993a5a51ea5b"
-}
-
-
-
\ No newline at end of file diff --git a/api/delete-zone.html b/api/delete-zone.html deleted file mode 100644 index 24e8d95e4..000000000 --- a/api/delete-zone.html +++ /dev/null @@ -1,126 +0,0 @@ -VinylDNS: Delete Zone

Delete Zone

- -

Abandons an existing zone that has already been connected to. -The zone will be disconnected from VinylDNS, but the RecordSets still exist in the backend DNS zone. -To delete the RecordSets see Delete RecordSet

- -

Note: We do not recommend that you abandon zones, as your zone history will be lost after the Delete. This endpoint is provided in certain situations where a zone was incorrectly started.

- -

HTTP REQUEST

- -
-

DELETE /zones/{zoneId}

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
202Accepted - The change has been queued and is returned in the response body
400Bad Request - Zone was not empty and contains records
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - Zone not found
409Conflict - Zone is unavailable
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zonemapzone being deleted
userIdstringthe user id that initiated the change
changeTypestringtype of change requested (Create, Update, Sync, Delete); in this case Delete
createdstringthe time (GMT) the change was initiated
idstringthe id of the change. This is not the id of the zone
statusstringthe status of the zone change
- -

EXAMPLE RESPONSE

- -
{
-  "status": "Pending",
-  "zone": {
-    "status": "Deleted",
-    "updated": "2016-12-28T18:45:53Z",
-    "name": "443ad9ff-8f38-4540-b53f-e23a35fdfc28.",
-    "adminGroupId": "test-group-id",
-    "created": "2016-12-28T18:45:53Z",
-    "account": "test_group",
-    "email": "test@test.com",
-    "shared": false,
-    "acl": {
-      "rules": []
-    },
-    "id": "4995e883-f314-4c5f-8ee8-75003ca08ab0"
-  },
-  "created": "2016-12-28T18:45:53Z",
-  "changeType": "Delete",
-  "userId": "vinyl",
-  "id": "89c463e3-1615-42f7-8299-a0ca7ccea439"
-}
-
-
-
\ No newline at end of file diff --git a/api/get-batchchange.html b/api/get-batchchange.html deleted file mode 100644 index af442238f..000000000 --- a/api/get-batchchange.html +++ /dev/null @@ -1,153 +0,0 @@ -VinylDNS: Get Batch Change

Get Batch Change

- -

Retrieves a batch change given the batch change ID. Only the user who created a batch change will have access to get it.

- -

HTTP REQUEST

- -
-

GET /zones/batchrecordchanges/{id}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - -
nametyperequired?description
idstringyesUnique identifier assigned to each created batch change.
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The batch change is returned in response body.
403Forbidden - The user does not have the access required to perform the action.
404Not Found - Batch change not found.
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
userIdstringThe unique identifier of the user that created the batch change.
userNamestringThe username of the user that created the batch change.
commentsstringOptional comments about the batch change.
createdTimestampdate-timeThe timestamp (in GMT) when the batch change was created.
changesArray of SingleChangeArray of single changes within a batch change. A SingleChange can either be a SingleAddChange or a SingleDeleteChange.
statusBatchChangeStatusPending - at least one change in batch in still in pending state; Complete - all changes are in complete state; Failed - all changes are in failure state; PartialFailure - some changes have failed and the rest are complete.
idstringThe unique identifier for this batch change.
- -

EXAMPLE RESPONSE

- -
{
-    "userId": "vinyl", 
-    "userName": "vinyl201", 
-    "comments": "this is optional", 
-    "createdTimestamp": "2018-05-09T14:19:34Z", 
-    "changes": [
-        {
-            "changeType": "Add", 
-            "inputName": "parent.com.", 
-            "type": "A", 
-            "ttl": 200, 
-            "record": {
-                "address": "4.5.6.7"
-            }, 
-            "status": "Pending", 
-            "recordName": "parent.com.", 
-            "zoneName": "parent.com.", 
-            "zoneId": "74e93bfc-7296-4b86-83d3-1ffcb0eb3d13",
-            "recordChangeId": "a07299ce-5f81-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "a0729f00-5f81-11e8-9c2d-fa7ae01bbebc",
-            "id": "7573ca11-3e30-45a8-9ba5-791f7d6ae7a7"
-        },
-        {
-            "changeType": "DeleteRecordSet", 
-            "inputName": "deleting.parent.com.", 
-            "type": "CNAME", 
-            "status": "Pending", 
-            "recordName": "deleting", 
-            "zoneName": "parent.com.", 
-            "zoneId": "74e93bfc-7296-4b86-83d3-1ffcb0eb3d13",
-            "recordChangeId": "bed15986-5f82-11e8-9c2d-fa7ae01bbebc",
-            "recordSetId": "c089e52c-5f82-11e8-9c2d-fa7ae01bbebc",
-            "id": "7573ca11-3e30-45a8-9ba5-791f7d6ae7a7"
-        }
-    ], 
-    "status": "Pending", 
-    "id": "02bd95f4-a32c-443b-82eb-54dbaa55b31a"
-}
-
-
-
\ No newline at end of file diff --git a/api/get-group.html b/api/get-group.html deleted file mode 100644 index d25678a21..000000000 --- a/api/get-group.html +++ /dev/null @@ -1,119 +0,0 @@ -VinylDNS: Get Group

Get Group

- -

Gets a group that you are a part of

- -

HTTP REQUEST

- -
-

GET /groups/{groupId}

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The group is returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
404Not Found - The group was not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
idstringUnique UUID of the group
namemapThe name of the group
emailstringThe email distribution list of the group
descriptionstringThe group description, the group may not have this field if it was not set
createdstringThe time (GMT) the group was created
statusstringActive or Deleted
membersArray of User Id objectsIds of members of the group including admins
adminsArray of User Id objectsIds of admins of the group
- -

EXAMPLE RESPONSE

- -
{
-  "id": "6f8afcda-7529-4cad-9f2d-76903f4b1aca",
-  "name": "some-group",
-  "email": "test@example.com",
-  "created": "2017-03-02T15:29:21Z",
-  "status": "Active",
-  "members": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    },
-    {
-      "id": "c8630ebc-0af2-4c9a-a0a0-d18c590ed03e"
-    }
-  ],
-  "admins": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    }
-  ]
-}
-
-
-
\ No newline at end of file diff --git a/api/get-recordset-change.html b/api/get-recordset-change.html deleted file mode 100644 index 18e0cc99e..000000000 --- a/api/get-recordset-change.html +++ /dev/null @@ -1,131 +0,0 @@ -VinylDNS: Get RecordSet Change

Get RecordSet Change

- -

RecordSet changes (Create, Update, Delete) are not immediately applied to the DNS backend; they are queued up for processing. Most changes are applied within a few seconds. -When you submit a change for processing, the response is a Change model. You can use the information in that change model in order to poll for the status of the change until it completes (status = Complete) or fails (status = Failed)

- -

HTTP REQUEST

- -
-

GET /zones/{zoneId}/recordsets/{recordSetId}/changes/{recordChangeId}

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The record set change is returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - The zone, record set, or change was not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zonemapcontains information about the zone when the change was created
recordSetmapcontains the recordset model
userIdstringthe user id that initiated the change
changeTypestringtype of change requested (Create, Update, or Delete)
createdstringthe time (GMT) the change was initiated
idstringthe id of the change. This is not the id of the recordset
- -

EXAMPLE RESPONSE

- -
{
-  "zone": {
-    "name": "vinyl.",
-    "email": "test@test.com",
-    "status": "Active",
-    "created": "2017-02-23T14:52:44Z",
-    "id": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-    "shared": false,
-    "acl": {
-      "rules": [
-
-      ]
-    },
-    "adminGroupId": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae"
-  },
-  "recordSet": {
-    "type": "A",
-    "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "name": "foo",
-    "ttl": 300,
-    "status": "Pending",
-    "created": "2017-02-23T14:58:54Z",
-    "records": [
-      {
-        "address": "10.10.10.10"
-      }
-    ],
-    "id": "9a41b99c-8e67-445f-bcf3-f9c7cd1f2357",
-    "account": "0215d410-9b7e-4636-89fd-b6b948a06347"
-  },
-  "userId": "0215d410-9b7e-4636-89fd-b6b948a06347",
-  "changeType": "Create",
-  "status": "Pending",
-  "created": "2017-02-23T14:58:54Z",
-  "id": "fef81f0b-f439-462d-88df-c773d3686c9b"
-}
-
-
-
\ No newline at end of file diff --git a/api/get-recordset.html b/api/get-recordset.html deleted file mode 100644 index 51e3fe267..000000000 --- a/api/get-recordset.html +++ /dev/null @@ -1,136 +0,0 @@ -VinylDNS: Get RecordSet

Get RecordSet

- -

Gets a RecordSet in a specified zone

- -

HTTP REQUEST

- -
-

GET /zones/{zoneId}/recordsets/{recordSetId}

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The record set is returned
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - The zone with the id specified was not found, or the record set with id was not found
- -

HTTP RESPONSE ATTRIBUTES

-

The returned json object has all the fields from the RecordSet as well as an added accessLevel field

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
typestringtype of record set
zoneIdstringthe zone the record is stored in
namestringthe name of the record set
ttlintegerthe TTL of the record set in seconds
statusstringthe status of the record set
createdstringthe time (GMT) the change was initiated
updatedstringthe time (GMT) the change was last updated
recordsarray of record dataarray of record data objects
idstringthe unique id of the record set
accountstringDEPRECATED the id of the account that created the record set
accessLevelstringaccessLevel that user has to record set based off acl rules and whether or not user is in Zone Admin Group
- -

EXAMPLE RESPONSE

- -
{
-  "type": "A",
-  "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-  "name": "already-exists",
-  "ttl": 38400,
-  "status": "Active",
-  "created": "2017-02-23T15:12:41Z",
-  "updated": "2017-02-23T15:12:41Z",
-  "records": [
-    {
-      "address": "6.6.6.1"
-    }
-  ],
-  "id": "dd9c1120-0594-4e61-982e-8ddcbc8b2d21",
-  "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-  "accessLevel": "Delete"
-}
-
-
-
\ No newline at end of file diff --git a/api/get-zone.html b/api/get-zone.html deleted file mode 100644 index 63e7ed726..000000000 --- a/api/get-zone.html +++ /dev/null @@ -1,95 +0,0 @@ -VinylDNS: Get Zone

Get Zone

- -

Retrieves a zone with the matching zone id

- -

HTTP REQUEST

- -
-

GET /zones/{zoneId}

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - Successful lookup, the zone is returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - Zone not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - -
nametypedescription
zonemaprefer to zone model
- -

EXAMPLE RESPONSE

- -
{
-  "zone": {
-    "status": "Active",
-    "account": "6baa85ad-267f-44ff-b535-818b7d7a2467",
-    "name": "system-test.",
-    "created": "2016-12-28T18:12:09Z",
-    "adminGroupId": "6baa85ad-267f-44ff-b535-818b7d7a2467",
-    "email": "test@example.com",
-    "connection": {
-      "primaryServer": "127.0.0.1:5301",
-      "keyName": "vinyl.",
-      "name": "system-test.",
-      "key": "OBF:1:B2cetOaRf1YAABAAek/w22XyKAleCRjA/hZO9fkNtNufPIRWTYHXviAk9GjrfcFOG9nNuB=="
-    },
-    "transferConnection": {
-      "primaryServer": "127.0.0.1:5301",
-      "keyName": "vinyl.",
-      "name": "system-test.",
-      "key": "OBF:1:PNt2k1nYkC0AABAAePpNMrDp+4C4GDbicWWlAqB5c4mKoKhvfpiWY1PfuRCVzSAeXydztB=="
-    },
-    "shared": true,
-    "acl": {
-      "rules": []
-    },
-    "id": "0f2fcece-b4ee-4982-b671-e5946f7db81d"
-  }
-}
-
-
-
\ No newline at end of file diff --git a/api/index.html b/api/index.html deleted file mode 100644 index fdcf9b425..000000000 --- a/api/index.html +++ /dev/null @@ -1,15 +0,0 @@ -VinylDNS: API documentation

API documentation

- - -
\ No newline at end of file diff --git a/api/list-batchchanges.html b/api/list-batchchanges.html deleted file mode 100644 index dd7fdd95d..000000000 --- a/api/list-batchchanges.html +++ /dev/null @@ -1,144 +0,0 @@ -VinylDNS: List Batch Changes

List Batch Changes

- -

Retrieves the most recent 100 batch changes created by the user. This call will return a subset of the full information in each change, as detailed in the attributes section.

- -

The max number of batch changes that are returned from a single request has been set to 100.

- -

HTTP REQUEST

- -
-

GET zones/batchrecordchanges

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - -
Codedescription
200OK - the batch change is returned in response body.
403Forbidden - the user does not have the access required to perform the action.
- -

If there are no batch changes created by the user, a successful empty response body is returned.

- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - -
nametypedescription
batchChangesArray of BatchChangeSummarySummary information for the most recent 100 batch changes created by the user.
- -
BatchChangeSummary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
userIdstringThe unique identifier of the user that created the batch change.
userNamestringThe username of the user that created the batch change.
commentsdate-timeOptional comments about the batch change.
createdTimestampdate-timeThe timestamp (in GMT) when the batch change was created.
totalChangesintThe total number of single changes within the batch change.
statusBatchChangeStatusPending - at least one change in batch in still in pending state; Complete - all changes are in complete state; Failed - all changes are in failure state; PartialFailure - some changes have failed and the rest are complete.
idstringThe unique identifier for this batch change.
- -

EXAMPLE RESPONSE

- -
{
-    "batchChanges": [
-        {
-            "userId": "vinyl", 
-            "userName": "vinyl201", 
-            "comments": "this is optional", 
-            "createdTimestamp": "2018-05-11T18:12:13Z", 
-            "totalChanges": 5, 
-            "status": "Complete", 
-            "id": "bd03175c-6fd7-419e-991c-3d5d1441d995"
-        }, 
-        {
-            "userId": "vinyl", 
-            "userName": "vinyl201", 
-            "comments": "this is optional", 
-            "createdTimestamp": "2018-05-11T18:12:12Z", 
-            "totalChanges": 10, 
-            "status": "Complete", 
-            "id": "c2ad84b0-e6de-4a70-aa28-e808d33deaa5"
-        },
-        {
-            "userId": "vinyl", 
-            "userName": "vinyl201", 
-            "comments": "this is optional", 
-            "createdTimestamp": "2018-05-11T18:12:12Z", 
-            "totalChanges": 7, 
-            "status": "Complete", 
-            "id": "2b827a33-7c4f-4623-8dd9-277c6fba0e54"
-        }
-    ]
-}
-
-
-
\ No newline at end of file diff --git a/api/list-group-activity.html b/api/list-group-activity.html deleted file mode 100644 index 4049165d2..000000000 --- a/api/list-group-activity.html +++ /dev/null @@ -1,196 +0,0 @@ -VinylDNS: List Group Activity

List Group Activity

- -

Retrieves a list of group activity

- -

HTTP REQUEST

- -
-

GET /groups/{groupId}/activity?startFrom={response.nextId}&maxItems={1 - 100}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
startFromanynoIn order to advance through pages of results, the startFrom is set to the nextId that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results
maxItemsintegernoThe number of items to return in the page. Valid values are 1 to 100. Defaults to 100 if not provided.
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The changes have been returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
404Not Found - The group was not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
changesArray of Group Changesrefer to Group Change
startFromanystartFrom sent in request, will not be returned if not provided
nextIdanynextId, used as startFrom parameter of next page request, will not be returned if activity is exhausted
maxItemsintegermaxItems sent in request, default is 100
- -

GROUP CHANGE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
newGroupmapThe new group as a result of the change, refer to Membership Model
oldGroupmapThe old group before the change, refer to Membership Model
createdstringMillisecond timestamp that change was created
userIdstringUser Id of user who made the change
changeTypestringThe type change, either Create, Update, or Delete
- -

EXAMPLE RESPONSE

- -
{
-  "maxItems": 100,
-  "changes": [
-    {
-      "newGroup": {
-        "status": "Active",
-        "name": "test-list-group-activity-max-item-success",
-        "created": "2017-03-02T18:49:58Z",
-        "id": "1555bac7-0343-4d11-800f-955afb481818",
-        "admins": [
-          {
-            "id": "ok"
-          }
-        ],
-        "members": [
-          {
-            "id": "dummy199"
-          },
-          {
-            "id": "ok"
-          }
-        ],
-        "email": "test@test.com"
-      },
-      "created": "1488480605378",
-      "userId": "some-user",
-      "changeType": "Update",
-      "oldGroup": {
-        "status": "Active",
-        "name": "test-list-group-activity-max-item-success",
-        "created": "2017-03-02T18:49:58Z",
-        "id": "1555bac7-0343-4d11-800f-955afb481818",
-        "admins": [
-          {
-            "id": "ok"
-          }
-        ],
-        "members": [
-          {
-            "id": "dummy198"
-          },
-          {
-            "id": "ok"
-          }
-        ],
-        "email": "test@test.com"
-      },
-      "id": "11abb88b-c47d-469b-bc2d-6656e00711cf"
-    }
-  ]
-}
-
-
-
\ No newline at end of file diff --git a/api/list-group-admins.html b/api/list-group-admins.html deleted file mode 100644 index 44a478bee..000000000 --- a/api/list-group-admins.html +++ /dev/null @@ -1,84 +0,0 @@ -VinylDNS: List Group Admins

List Group Admins

- -

Retrieves a group’s admins

- -

HTTP REQUEST

- -
-

GET /groups/{groupId}/admins

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The admins have been returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
404Not Found - The group was not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - -
nametypedescription
adminsArray of Usersrefer to membership model
- -

EXAMPLE RESPONSE

- -
{
-  "admins": [
-    {
-      "userName": "jdoe201",
-      "firstName": "john",
-      "created": "2017-03-02T16:39:02Z",
-      "lastName": "doe",
-      "email": "john_doe@example.com",
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    },
-    {
-      "userName": "jdoe202",
-      "firstName": "jane",
-      "created": "2017-03-02T16:50:02Z",
-      "lastName": "doe",
-      "email": "jane_doe@example.com",
-      "id": "1764183c-5e75-4ae6-8833-503cd5f4dcb4"
-    }
-  ]
-}
-
-
-
\ No newline at end of file diff --git a/api/list-group-members.html b/api/list-group-members.html deleted file mode 100644 index b9331d8b7..000000000 --- a/api/list-group-members.html +++ /dev/null @@ -1,129 +0,0 @@ -VinylDNS: List Group Members

List Group Members

- -

Retrieves a list of group members

- -

HTTP REQUEST

- -
-

GET /groups/{groupId}/members?startFrom={response.nextId}&maxItems={1 - 100}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
startFromanynoIn order to advance through pages of results, the startFrom is set to the nextId that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results
maxItemsintegernoThe number of items to return in the page. Valid values are 1 to 100. Defaults to 100 if not provided.
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The members have been returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
404Not Found - The group was not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
membersArray of Usersrefer to membership model, these Users will also include an isAdmin attribute
startFromanystartFrom sent in request, will not be returned if not provided
nextIdanynextId, used as startFrom parameter of next page request, will not be returned if members are exhausted
maxItemsintegermaxItems sent in request, default is 100
- -

EXAMPLE RESPONSE

- -
{
-  "members": [
-    {
-      "id": "0b1acc37-7d97-4da7-8a28-f1770bb99643",
-      "userName": "jdoe201",
-      "firstName": "John",
-      "lastName": "Doe",
-      "email": "John_Doe@example.com",
-      "created": "2017-03-02T18:42:31Z",
-      "isAdmin": true
-    },
-    {
-      "id": "0cb85121-671a-4920-ab02-0c17a7b40874",
-      "userName": "bwayne300",
-      "firstName": "Bruce",
-      "lastName": "Wayne",
-      "email": "Bruce_Wayne@cable.example.com",
-      "created": "2017-03-02T18:42:54Z",
-      "isAdmin": false
-    }
-  ],
-  "maxItems": 100
-}
-
-
-
\ No newline at end of file diff --git a/api/list-groups.html b/api/list-groups.html deleted file mode 100644 index 2d55b6d48..000000000 --- a/api/list-groups.html +++ /dev/null @@ -1,152 +0,0 @@ -VinylDNS: List Groups

List Groups

- -

Retrieves a list of groups that you are a part of

- -

HTTP REQUEST

- -
-

GET /groups?startFrom={response.nextId}&maxItems={1 - 100}&groupNameFilter={filter}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
groupNameFilterstringnoOne or more characters contained in the name of the group set to search for. For example TP. This is a contains search only, no wildcards or regular expressions are supported
startFromanynoIn order to advance through pages of results, the startFrom is set to the nextId that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results
maxItemsintegernoThe number of items to return in the page. Valid values are 1 to 100. Defaults to 100 if not provided.
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The groups have been returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
groupsArray of Groupsrefer to membership model
startFromanystartFrom sent in request, will not be returned if not provided
nextIdanynextId, used as startFrom parameter of next page request, will not be returned if groups are exhausted
maxItemsintegermaxItems sent in request, default is 100
groupNameFilterstringname filter sent in request
- -

EXAMPLE RESPONSE

- -
{
-  "maxItems": 100,
-  "groups": [
-    {
-      "id": "93887728-2b26-4749-ba69-98871dda9cc0",
-      "name": "some-other-group",
-      "email": "test@example.com",
-      "created": "2017-03-02T16:23:07Z",
-      "status": "Active",
-      "members": [
-        {
-          "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-        }
-      ],
-      "admins": [
-        {
-          "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-        }
-      ]
-    },
-    {
-      "id": "aa1ea217-70a7-4350-b22b-c7e2f2158fb9",
-      "name": "some-group",
-      "email": "test@example.com",
-      "created": "2017-03-02T16:22:57Z",
-      "status": "Active",
-      "members": [
-        {
-          "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-        }
-      ],
-      "admins": [
-        {
-          "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-        }
-      ]
-    }
-  ]
-}
-
-
-
\ No newline at end of file diff --git a/api/list-recordset-changes.html b/api/list-recordset-changes.html deleted file mode 100644 index 4edd83526..000000000 --- a/api/list-recordset-changes.html +++ /dev/null @@ -1,594 +0,0 @@ -VinylDNS: List RecordSet Changes

List RecordSet Changes

- -

RecordSet changes (Create, Update, Delete) are not immediately applied to the DNS backend; they are queued up for processing. Most changes are applied within a few seconds. -When you submit a change for processing, the response is a Change model. You can use the information in that change model in order to poll for the status of the change until it completes (status = Complete) or fails (status = Failed) -

-Retrieves a list of RecordSet changes in a zone. All RecordSet changes are stored, including those coming from zone syncs. RecordSet changes come in max page sizes of 100 changes, paging must be done independently using startFrom and nextId parameters

- -

HTTP REQUEST

- -
-

GET /zones/{zoneId}/recordsetchanges?startFrom={response.nextId}&maxItems={1 - 100}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
startFromanynoIn order to advance through pages of results, the startFrom is set to the nextId that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results
maxItemsintnoThe number of items to return in the page. Valid values are 1 - 100. Defaults to 100 if not provided.
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - the recordset changes are returned in response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - Zone not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zoneIdstringId of zone used for request
recordSetChangesarray of recordset changesarray of recordset changes sorted by created time in descending order
startFromany(optional) The startFrom parameter that was sent in on the HTTP request. Will not be present if the startFrom parameter was not sent
nextIdany(optional) The identifier to be passed in as the startFrom parameter to retrieve the next page of results. If there are no results left, this field will not be present
maxItemsintThe maxItems parameter that was sent in on the HTTP request. This will be 100 if not sent
- -

EXAMPLE RESPONSE

- -
{
-  "recordSetChanges": [
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:58Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:58Z",
-          "name": "test-create-cname-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "cname": "changed-cname."
-            }
-          ],
-          "ttl": 200,
-          "type": "CNAME",
-          "id": "f62235df-5372-443c-9ba4-bdd3fca452f4"
-        },
-        "changeType": "Delete",
-        "userId": "history-id",
-        "updates": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:58Z",
-          "name": "test-create-cname-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "cname": "changed-cname."
-            }
-          ],
-          "ttl": 200,
-          "type": "CNAME",
-          "id": "f62235df-5372-443c-9ba4-bdd3fca452f4"
-        },
-        "id": "68fd6dbe-0da8-4280-bcf3-37f54528dc41"
-      },
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:58Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:58Z",
-          "name": "test-create-aaaa-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "2003:db8:0:0:0:0:0:4"
-            },
-            {
-              "address": "2002:db8:0:0:0:0:0:3"
-            }
-          ],
-          "ttl": 200,
-          "type": "AAAA",
-          "id": "9559103d-4cb4-4d34-9d3f-eab3fe2e8aed"
-        },
-        "changeType": "Delete",
-        "userId": "history-id",
-        "updates": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-aaaa-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "2003:db8:0:0:0:0:0:4"
-            },
-            {
-              "address": "2002:db8:0:0:0:0:0:3"
-            }
-          ],
-          "ttl": 200,
-          "type": "AAAA",
-          "id": "9559103d-4cb4-4d34-9d3f-eab3fe2e8aed"
-        },
-        "id": "dabf1e57-49e7-4d2d-8a00-814d88546b0c"
-      },
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:58Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:58Z",
-          "name": "test-create-a-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "9.9.9.9"
-            },
-            {
-              "address": "10.2.2.2"
-            }
-          ],
-          "ttl": 200,
-          "type": "A",
-          "id": "f1fd620e-5ff3-4ee9-839f-bc747a9867d9"
-        },
-        "changeType": "Delete",
-        "userId": "history-id",
-        "updates": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-a-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "9.9.9.9"
-            },
-            {
-              "address": "10.2.2.2"
-            }
-          ],
-          "ttl": 200,
-          "type": "A",
-          "id": "f1fd620e-5ff3-4ee9-839f-bc747a9867d9"
-        },
-        "id": "23ae1487-bc7f-481b-a544-10ceb7a87540"
-      },
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:57Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:58Z",
-          "name": "test-create-cname-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "cname": "changed-cname."
-            }
-          ],
-          "ttl": 200,
-          "type": "CNAME",
-          "id": "f62235df-5372-443c-9ba4-bdd3fca452f4"
-        },
-        "changeType": "Update",
-        "userId": "history-id",
-        "updates": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-cname-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "cname": "cname."
-            }
-          ],
-          "ttl": 100,
-          "type": "CNAME",
-          "id": "f62235df-5372-443c-9ba4-bdd3fca452f4"
-        },
-        "id": "5c722555-c7be-4620-a1fd-8ca53a5b8683"
-      },
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:57Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-aaaa-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "2003:db8:0:0:0:0:0:4"
-            },
-            {
-              "address": "2002:db8:0:0:0:0:0:3"
-            }
-          ],
-          "ttl": 200,
-          "type": "AAAA",
-          "id": "9559103d-4cb4-4d34-9d3f-eab3fe2e8aed"
-        },
-        "changeType": "Update",
-        "userId": "history-id",
-        "updates": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-aaaa-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "2001:db8:0:0:0:0:0:3"
-            },
-            {
-              "address": "2002:db8:0:0:0:0:0:3"
-            }
-          ],
-          "ttl": 100,
-          "type": "AAAA",
-          "id": "9559103d-4cb4-4d34-9d3f-eab3fe2e8aed"
-        },
-        "id": "480fff34-61d3-4a1d-9696-f5007842b38a"
-      },
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:57Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-a-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "9.9.9.9"
-            },
-            {
-              "address": "10.2.2.2"
-            }
-          ],
-          "ttl": 200,
-          "type": "A",
-          "id": "f1fd620e-5ff3-4ee9-839f-bc747a9867d9"
-        },
-        "changeType": "Update",
-        "userId": "history-id",
-        "updates": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-a-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "10.1.1.1"
-            },
-            {
-              "address": "10.2.2.2"
-            }
-          ],
-          "ttl": 100,
-          "type": "A",
-          "id": "f1fd620e-5ff3-4ee9-839f-bc747a9867d9"
-        },
-        "id": "999d8674-e59b-478e-95c0-9d4eb964f2be"
-      },
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "connection": {
-            "primaryServer": "127.0.0.1:5301",
-            "keyName": "vinyl.",
-            "name": "system-test-history.",
-            "key": "OBF:1:YVgGogd/Y+oAABAAIp4s3z7FAn92uvfOci9v0jMjihQ+uV3bOCyNwpMPh78tL4q/A8dR7A=="
-          },
-          "transferConnection": {
-            "primaryServer": "127.0.0.1:5301",
-            "keyName": "vinyl.",
-            "name": "system-test-history.",
-            "key": "OBF:1:Pq3UqxiceV4AABAAdu90et1pkNn2ZO3MuYstki5BkQVm3T50RQLarpVhIgaoOKLi2CdL6Q=="
-          },
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:57Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-cname-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "cname": "cname."
-            }
-          ],
-          "ttl": 100,
-          "type": "CNAME",
-          "id": "f62235df-5372-443c-9ba4-bdd3fca452f4"
-        },
-        "changeType": "Create",
-        "userId": "history-id",
-        "id": "b05f0837-84bd-47aa-8a95-7bde91046268"
-      },
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:57Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-aaaa-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "2001:db8:0:0:0:0:0:3"
-            },
-            {
-              "address": "2002:db8:0:0:0:0:0:3"
-            }
-          ],
-          "ttl": 100,
-          "type": "AAAA",
-          "id": "9559103d-4cb4-4d34-9d3f-eab3fe2e8aed"
-        },
-        "changeType": "Create",
-        "userId": "history-id",
-        "id": "e7e6b7f9-5253-4947-9580-3f0b81a48717"
-      },
-      {
-        "status": "Complete",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:57Z",
-        "recordSet": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "test-create-a-ok",
-          "created": "2016-12-30T15:37:57Z",
-          "account": "history-id",
-          "zoneId": "9f353bc7-cb8d-491c-b074-34afafc97c5f",
-          "records": [
-            {
-              "address": "10.1.1.1"
-            },
-            {
-              "address": "10.2.2.2"
-            }
-          ],
-          "ttl": 100,
-          "type": "A",
-          "id": "f1fd620e-5ff3-4ee9-839f-bc747a9867d9"
-        },
-        "changeType": "Create",
-        "userId": "history-id",
-        "id": "6743d428-7748-4348-a6c9-ae59e9eeaf97"
-      }
-    ],
-  "maxItems": 100
-}
-
-
-
\ No newline at end of file diff --git a/api/list-recordsets.html b/api/list-recordsets.html deleted file mode 100644 index 69bfb8667..000000000 --- a/api/list-recordsets.html +++ /dev/null @@ -1,232 +0,0 @@ -VinylDNS: List / Search RecordSets

List / Search RecordSets

- -

Retrieves a list of RecordSets from the zone

- -

HTTP REQUEST

- -
-

GET /zones/{zoneId}/recordsets?startFrom={response.nextId}&maxItems={1 - 100}&recordNameFilter={filter}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
recordNameFilterstringnoOne or more characters contained in the name of the record set to search for. For example vinyl. This is a contains search only, no wildcards or regular expressions are supported
startFromanynoIn order to advance through pages of results, the startFrom is set to the nextId that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results
maxItemsintegernoThe number of items to return in the page. Valid values are 1 to 100. Defaults to 100 if not provided.
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The record sets are returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - Zone or RecordSet not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
recordSetsArray of RecordSetsrefer to recordset model, the RecordSet data will also include the accessLevel the requesting user has based off acl rules and membership in Zone Admin Group
startFromanystartFrom sent in request, will not be returned if not provided
nextIdanynextId, used as startFrom parameter of next page request, will not be returned if record sets are exhausted
maxItemsintegermaxItems sent in request, default is 100
recordNameFilterstringname filter sent in request
- -

EXAMPLE RESPONSE

- -
{
-  "recordSets": [
-    {
-      "type": "A",
-      "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-      "name": "already-exists",
-      "ttl": 38400,
-      "status": "Active",
-      "created": "2017-02-23T15:12:41Z",
-      "updated": "2017-02-23T15:12:41Z",
-      "records": [
-        {
-          "address": "6.6.6.1"
-        }
-      ],
-      "id": "dd9c1120-0594-4e61-982e-8ddcbc8b2d21",
-      "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-      "accessLevel": "Delete"
-    },
-    {
-      "type": "NS",
-      "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-      "name": "vinyl",
-      "ttl": 38400,
-      "status": "Active",
-      "created": "2017-02-23T15:12:33Z",
-      "records": [
-        {
-          "nsdname": "172.17.42.2."
-        }
-      ],
-      "id": "daf5ea7b-c28c-422a-ba47-2c37ca567a77",
-      "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-      "accessLevel": "Delete"
-    },
-    {
-      "type": "SOA",
-      "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-      "name": "vinyl",
-      "ttl": 38400,
-      "status": "Active",
-      "created": "2017-02-23T15:12:33Z",
-      "records": [
-        {
-          "mname": "172.17.42.2.",
-          "rname": "admin.test.com.",
-          "serial": 1439234395,
-          "refresh": 10800,
-          "retry": 3600,
-          "expire": 604800,
-          "minimum": 38400
-        }
-      ],
-      "id": "9da83158-05ab-4f14-8bd0-0a4d85cdeb30",
-      "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-      "accessLevel": "Delete"
-    },
-    {
-      "type": "A",
-      "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-      "name": "vinyl",
-      "ttl": 38400,
-      "status": "Active",
-      "created": "2017-02-23T15:12:33Z",
-      "records": [
-        {
-          "address": "5.5.5.5"
-        }
-      ],
-      "id": "d73275ff-e71e-4024-aef1-1236741443b5",
-      "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-      "accessLevel": "Delete"
-    },
-    {
-      "type": "A",
-      "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-      "name": "jenkins",
-      "ttl": 38400,
-      "status": "Active",
-      "created": "2017-02-23T15:12:33Z",
-      "records": [
-        {
-          "address": "10.1.1.1"
-        }
-      ],
-      "id": "0432f63b-3947-4262-9ade-a3311d07a099",
-      "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-      "accessLevel": "Delete"
-    },
-    {
-      "type": "A",
-      "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-      "name": "test",
-      "ttl": 38400,
-      "status": "Active",
-      "created": "2017-02-23T15:12:33Z",
-      "records": [
-        {
-          "address": "4.4.4.4"
-        },
-        {
-          "address": "3.3.3.3"
-        }
-      ],
-      "id": "dc0e3ce9-ec01-47f1-9418-461dc1754f48",
-      "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-      "accessLevel": "Delete"
-    }
-  ],
-  "maxItems": 100
-}
-
-
-
\ No newline at end of file diff --git a/api/list-zone-changes.html b/api/list-zone-changes.html deleted file mode 100644 index 770f9a8c0..000000000 --- a/api/list-zone-changes.html +++ /dev/null @@ -1,164 +0,0 @@ -VinylDNS: List Zone Changes

List Zone Changes

- -

Retrieves a list of zone changes to a zone. All zone changes are stored, including those coming from zone syncs. Zone changes come in max page sizes of 100 changes, paging must be done independently using startFrom and nextId parameters

- -

HTTP REQUEST

- -
-

GET /zones/{zoneId}/changes?startFrom={response.nextId}&maxItems={1 - 100}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
startFromanynoIn order to advance through pages of results, the startFrom is set to the nextId that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results
maxItemsintnoThe number of items to return in the page. Valid values are 1 - 100. Defaults to 100 if not provided.
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200Accepted - The zone changes will be returned in the response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - Zone not found
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zoneIdstringId of zone used for request
zoneChangesarray of zone changesarray of zone changes sorted by created time in descending order
startFromany(optional) The startFrom parameter that was sent in on the HTTP request. Will not be present if the startFrom parameter was not sent
nextIdany(optional) The identifier to be passed in as the startFrom parameter to retrieve the next page of results. If there are no results left, this field will not be present
maxItemsintThe maxItems parameter that was sent in on the HTTP request. This will be 100 if not sent
- -

EXAMPLE RESPONSE

- -
{
-  "zoneChanges": [
-      {
-        "status": "Synced",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.10.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:57Z",
-        "changeType": "Update",
-        "userId": "history-id",
-        "id": "6d4deccb-4632-475e-9ebc-3f6bace5fe68"
-      },
-      {
-        "status": "Synced",
-        "zone": {
-          "status": "Active",
-          "updated": "2016-12-30T15:37:57Z",
-          "name": "system-test-history.",
-          "adminGroupId": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "created": "2016-12-30T15:37:56Z",
-          "account": "67b4da23-6832-4600-8450-9fa0664caeeb",
-          "email": "i.changed.this.9.times@history-test.com",
-          "shared": true,
-          "acl": {
-            "rules": []
-          },
-          "id": "9f353bc7-cb8d-491c-b074-34afafc97c5f"
-        },
-        "created": "2016-12-30T15:37:57Z",
-        "changeType": "Update",
-        "userId": "history-id",
-        "id": "59c2db90-41aa-49ae-8c56-e13a2ada918d"
-      }
-  ],
-  "startFrom": "2910234",
-  "nextId": "1034932",
-  "maxItems": 2
-}
-
-
-
\ No newline at end of file diff --git a/api/list-zones.html b/api/list-zones.html deleted file mode 100644 index 715a2d88e..000000000 --- a/api/list-zones.html +++ /dev/null @@ -1,182 +0,0 @@ -VinylDNS: List / Search Zones

List / Search Zone

- -

Retrieves the list of zones a user has access to. The zone name is only sorted alphabetically.

- -

HTTP REQUEST

- -
-

GET /zones?nameFilter={yoursearchhere}&startFrom={response.nextId}&maxItems={1 - 100}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
nameFilterstringnoOne or more characters contained in the name of the zone to search for. For example www-. This is a contains search only, no wildcards or regular expressions are supported
startFromanynoIn order to advance through pages of results, the startFrom is set to the nextId that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results
maxItemsintnoThe number of items to return in the page. Valid values are 1 - 100. Defaults to 100 if not provided.
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The zones and search info are returned in response body
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zonesArray of ZonesAn array of the zones found. The zones are sorted alphabetically by zone name.
startFromany(optional) The startFrom parameter that was sent in on the HTTP request. Will not be present if the startFrom parameter was not sent
nextIdany(optional) The identifier to be passed in as the startFrom parameter to retrieve the next page of results. If there are no results left, this field will not be present.
maxItemsintThe maxItems parameter that was sent in on the HTTP request. This will be 100 if not sent.
- -

EXAMPLE RESPONSE

- -
{
-  "zones": [
-    {
-      "status": "Active",
-      "account": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "name": "list-zones-test-searched-1.",
-      "created": "2016-12-16T15:21:47Z",
-      "adminGroupId": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "email": "test@test.com",
-      "shared": false,
-      "acl": {
-        "rules": []
-      },
-      "id": "31a3d8a9-bea0-458f-9c24-3d39d4b929d6"
-    },
-    {
-      "status": "Active",
-      "account": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "name": "list-zones-test-searched-2.",
-      "created": "2016-12-16T15:21:47Z",
-      "adminGroupId": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "email": "test@test.com",
-      "shared": false,
-      "acl": {
-        "rules": []
-      },
-      "id": "f1a376b2-2d8f-41f3-b8c8-9c9fba308f5d"
-    },
-    {
-      "status": "Active",
-      "account": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "name": "list-zones-test-searched-3.",
-      "created": "2016-12-16T15:21:47Z",
-      "adminGroupId": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "email": "test@test.com",
-      "shared": false,
-      "acl": {
-        "rules": []
-      },
-      "id": "568de57d-cb34-4f05-a9b5-35f9187490af"
-    },
-    {
-      "status": "Active",
-      "account": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "name": "list-zones-test-unfiltered-1.",
-      "created": "2016-12-16T15:21:47Z",
-      "adminGroupId": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "email": "test@test.com",
-      "shared": false,
-      "acl": {
-        "rules": []
-      },
-      "id": "98dac90c-236e-4171-8729-c977ad38717e"
-    },
-    {
-      "status": "Active",
-      "account": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "name": "list-zones-test-unfiltered-2.",
-      "created": "2016-12-16T15:21:47Z",
-      "adminGroupId": "a0b5ea74-cc05-4932-a294-9bf935d52744",
-      "email": "test@test.com",
-      "shared": false,
-      "acl": {
-        "rules": []
-      },
-      "id": "e4942020-b85a-421f-a8e2-124d8ba79422"
-    }
-  ],
-  "maxItems": 100
-}
-
-
-
\ No newline at end of file diff --git a/api/membership-model.html b/api/membership-model.html deleted file mode 100644 index 36a90d46e..000000000 --- a/api/membership-model.html +++ /dev/null @@ -1,166 +0,0 @@ -VinylDNS: Membership Model

Membership Model

- -

Table of Contents

- - - -

MEMBERSHIP BREAKDOWN

- -

Every zone can be connected to by only one group in VinylDNS. That initial group will be the admin group for that zone, -which can be changed later on in a Zone Update. Every member of the admin group -will be an admin of that zone, and can preform zone syncs, zone updates, zone deletes, and record set changes regardless -of any Access Control Rules set on them. -

-While users in the admin group will have complete zone access, further users can be given limited membership through Zone -ACL Rules

- -

GROUP ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fieldtypedescription
namestringThis should be a single word name used for the groups. Use hyphens if needed, no spaces
emailstringThe email distribution list for the group
descriptionstringA short description of the group, if more info is needed other than the name. The group will not have this attribute if it was not included in the create request
idstringUnique UUID of the group
createddate-timeThe timestamp GMT when the group was created
statusstringActive or Deleted
membersArray of User id objectsSet of User ids in the group
adminsArray of User id objectsSet of User ids that are admins of the group. All admin user ids should also be in the members array
- -

Being in the admin set of a group has no impact on zone privileges when the group is the zone’s admin group. Being a group admin allows adding users to -the group, deleting users from the group, toggling other users’ admin statuses (including your own), and deleting the group

- -

GROUP EXAMPLE

- -
{
-  "id": "dc4c7c79-5bbc-41bf-992e-8d6c4ec574c6",
-  "name": "some-group",
-  "email": "test@example.com",
-  "created": "2017-01-30T20:05:24Z",
-  "status": "Active",
-  "members": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    },
-    {
-      "id": "a6d35b1a-57d7-4a65-bec2-d7ed30a7c430"
-    }
-  ],
-  "admins": [
-    {
-      "id": "a6d35b1a-57d7-4a65-bec2-d7ed30a7c430"
-    }
-  ]
-}
-
-
- -

USER ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fieldtypedescription
userNamestringThis should be the NT id of the user
firstNamestringFirst name fo the user
lastNamestringLast name of the user
emailstringEmail address of the user
createddate-timeThe timestamp GMT when the user was created
idstringUnique UUID of the user
- -

To get your access and secret keys, log into the VinylDNS portal and then with the top right drop-down select Download Credentials

- -

USER EXAMPLE

- -
{
-  "userName": "jdoe201",
-  "firstName": "John",
-  "lastName": "Doe",
-  "email": "john_doe@example.com",
-  "id": "1764183c-5e75-4ae6-8833-503cd5f4dcb3"
-}
-
-
-
\ No newline at end of file diff --git a/api/recordset-model.html b/api/recordset-model.html deleted file mode 100644 index b2ff9fa91..000000000 --- a/api/recordset-model.html +++ /dev/null @@ -1,351 +0,0 @@ -VinylDNS: RecordSet Model

RecordSet Model

- -

Table of Contents

- - - -

RecordSet ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fieldtypedescription
zoneIdstringthe id of the zone to which this recordset belongs
namestringThe name of the RecordSet
typestringType of DNS record, supported records are currently: A, AAAA, CNAME, PTR, MX, NS, SOA, SRV, TXT, SSHFP, and SPF. Unsupported types will be given the type UNKNOWN
ttllongthe TTL in seconds for the recordset
statusstringActive - RecordSet is added is created and ready for use, Inactive - RecordSet effects are not applied, Pending - RecordSet is queued for creation, PendingUpdate - RecordSet is queued for update, PendingDelete - RecordSet is queued for delete
createddate-timethe timestamp GMT when the recordset was created
updateddate-timethe timestamp GMT when the recordset was last updated
recordsArray of RecordDataArray of record data, a single RecordSet can have multiple DNS records as long as they are all the same type
idstringthe id of the recordset. This is important as you will use it for other recordset operations
accountstringDEPRECATED The account that created the RecordSet
- -

RecordSet EXAMPLE

- -
{
-    "type": "A",
-    "zoneId": "8f8f649f-998e-4428-a029-b4ba5f5bd4ca",
-    "name": "foo",
-    "ttl": 38400,
-    "status": "Active",
-    "created": "2017-02-22T21:34:35Z",
-    "records": [
-        {
-            "address": "1.1.1.1"
-        },
-        {
-            "address": "2.2.2.2"
-        },
-        {
-            "address": "3.3.3.3"
-        }
-    ],
-    "id": "8306cce4-e16a-4579-9b19-4af46dc75853",
-    "account": "b34f8d18-646f-4843-a80a-7c0d58a22bf5"
-}
-
-
- -

RECORD DATA INFORMATION

-

Current supported record types are: A, AAAA, CNAME, PTR, MX, NS, SOA, SRV, TXT, SSHFP, and SPF. -Each individual record encodes its data in a record data object, in which each record type has different required attributes -

-NS and SOA records are currently read-only and cannot be created, updated or deleted

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
record typeattributetype
Aaddressstring

  
AAAAaddressstring

  
CNAMEcnamestring

  
MXpreferenceinteger
MXexchangestring

  
NSnsdnamestring

  
PTRptrdnamestring

  
SOAmnamestring
SOArnamestring
SOAseriallong
SOArefreshlong
SOAretrylong
SOAexpirelong
SOAminimumlong

  
SPFtextstring

  
SRVpriorityinteger
SRVweightinteger
SRVportinteger
SRVtargetstring

  
SSHFPalgorithminteger
SSHFPtypinteger
SSHFPfingerprintstring

  
TXTtextstring
- -

RECORD DATA EXAMPLE

- -

Each record is a map that must include all attributes for the data type, the records are stored in the records field of the RecordSet. -The records must be an array of at least one record map. All records in the records array must be of the type stored in the typ field of the RecordSet

- -

Use the @ symbol to point to the zone origin

- -

CNAME records cannot point to the zone origin, thus the RecordSet name cannot be @ nor the zone origin

- -

Individual SSHFP record:

- -
{
-    "type": "SSHFP",
-    "zoneId": "8f8f649f-998e-4428-a029-b4ba5f5bd4ca",
-    "name": "foo",
-    "ttl": 38400,
-    "status": "Active",
-    "created": "2017-02-22T21:34:35Z",
-    "records": [
-        {
-            "algorithm": 1,
-            "typ": 3,
-            "fingerprint": "560c7d19d5da9a3a5c7c19992d1fbde15d8dad31"
-        }
-    ],
-    "id": "8306cce4-e16a-4579-9b19-4af46dc75853",
-    "account": "b34f8d18-646f-4843-a80a-7c0d58a22bf5"
-}
-
-
- -

Multiple SSHFP records:

- -
{
-    "type": "SSHFP",
-    "zoneId": "8f8f649f-998e-4428-a029-b4ba5f5bd4ca",
-    "name": "foo",
-    "ttl": 38400,
-    "status": "Active",
-    "created": "2017-02-22T21:34:35Z",
-    "records": [
-        {
-          "algorithm": 1,
-          "typ": 2,
-          "fingerprint": "560c7d19d5da9a3a5c7c19992d1fbde15d8dad31"
-        },
-        {
-          "algorithm": 3,
-          "typ": 1,
-          "fingerprint": "160c7d19d5da9a3a5c7c19992d1fbde15d8dad31"
-        },
-        {
-          "algorithm": 4,
-          "typ": 1,
-          "fingerprint": "260c7d19d5da9a3a5c7c19992d1fbde15d8dad31"
-        }
-    ],
-    "id": "8306cce4-e16a-4579-9b19-4af46dc75853",
-    "account": "b34f8d18-646f-4843-a80a-7c0d58a22bf5"
-}
-
-
-
\ No newline at end of file diff --git a/api/sync-zone.html b/api/sync-zone.html deleted file mode 100644 index 9a5367acd..000000000 --- a/api/sync-zone.html +++ /dev/null @@ -1,137 +0,0 @@ -VinylDNS: Sync Zone

Sync Zone

- -

Used to sync VinylDNS zone info with existing zone info. When a sync is performed, a zone transfer is initiated with the backend DNS server. -The backend data is compared to the existing data in VinylDNS. If there are any differences, the backend DNS Server is considered -the source of truth and will overwrite the data in VinylDNS. All changes will be recorded in VinylDNS so they can be seen in the -zone history.

- -

While the zone is syncing, the zone will be unavailable for updates (read-only).

- -

We have done some testing on how long syncs take. These will vary with usage:

- -
    -
  • 1000 records ~ 1 second
  • -
  • 10,000 records ~ 10 seconds
  • -
  • 100,000 records ~ 6 minutes
  • -
- -

Please keep these numbers in mind when you perform syncs.

- -

HTTP REQUEST

- -
-

POST /zones/{zoneId}/sync

-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - Successful lookup, the zone is returned in the response body
400Bad Request - invalid sync state, a sync has been performed recently, or zone is inactive
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - the user does not have the access required to perform the action
404Not Found - Zone not found
409Conflict - Zone has a pending update
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
statusstringsync status
zonemaprefer to zone model
createdstringthe time (GMT) the sync was initiated
changeTypestringtype of change requested (Create, Update, Sync, Delete); in this case Sync
userIdstringthe user id that initiated the change
idstringthe id of the change. This is not the id of the zone
- -

EXAMPLE RESPONSE

- -
{
-  "status": "Pending",
-  "zone": {
-    "status": "Syncing",
-    "updated": "2016-12-28T19:22:02Z",
-    "name": "sync-test.",
-    "adminGroupId": "cf00d1e4-46f1-493a-a3be-0ae79dd306a5",
-    "created": "2016-12-28T19:22:01Z",
-    "account": "cf00d1e4-46f1-493a-a3be-0ae79dd306a5",
-    "email": "test@test.com",
-    "shared": false,
-    "acl": {
-      "rules": []
-    },
-    "id": "621a13df-a2e3-4394-84c0-3eb3a664dff4"
-  },
-  "created": "2016-12-28T19:22:02Z",
-  "changeType": "Sync",
-  "userId": "ok",
-  "id": "03f1ee91-9053-4346-8b53-e0f6042600f2"
-}
-
-
-
\ No newline at end of file diff --git a/api/update-group.html b/api/update-group.html deleted file mode 100644 index 6053ea001..000000000 --- a/api/update-group.html +++ /dev/null @@ -1,219 +0,0 @@ -VinylDNS: Update Group

Update Group

- -

Updates a Group in VinylDNS

- -

HTTP REQUEST

- -
-

PUT /groups/{groupId}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
idstringyesThe id of the group
namestringyesThe name of the group. Should be one word, use hyphens if needed but no spaces
emailstringyesThe email distribution list for the group
descriptionstringnoA short description of the group, if more info is needed other than the name
createddate-timeyesThe timestamp GMT when the group was created
statusstringyesActive or Deleted, should not be changed in an update, a delete request will handle deleting a group
membersArray of User id objectsyesSet of User ids in the group
adminsArray of User id objectsyesSet of User ids that are admins of the group. All admin user ids should also be in the members array
- -

EXAMPLE HTTP REQUEST

- -
{
-  "id": "6f8afcda-7529-4cad-9f2d-76903f4b1aca",
-  "name": "some-group",
-  "email": "test@example.com",
-  "created": "Thu Mar 02 2017 10:29:21",
-  "status": "Active",
-  "members": [
-    {
-      "id": "4764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    },
-    {
-      "id": "k8630ebc-0af2-4c9a-a0a0-d18c590ed03e"
-    }
-  ],
-  "admins": [
-    {
-      "id": "4764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    }
-  ]
-}
-
-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200OK - The group has been updated and the group info is returned in the response body
400Bad Request - The group was invalid or a user id was not found
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - The group was not found
409Conflict - The group already exists
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
idstringUnique UUID of the group
namemapThe name of the group
emailstringThe email distribution list of the group
descriptionstringThe group description, the group will not have this attribute if it was not included in the update request and already did not exist
createdstringThe time (GMT) the group was created
statusstringActive or Deleted, in this case Active
membersArray of User Id objectsIds of members of the group including admins
adminsArray of User Id objectsIds of admins of the group
- -

EXAMPLE RESPONSE

- -
{
-  "id": "6f8afcda-7529-4cad-9f2d-76903f4b1aca",
-  "name": "some-group",
-  "email": "test@example.com",
-  "created": "2017-03-02T15:29:21Z",
-  "status": "Active",
-  "members": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    },
-    {
-      "id": "c8630ebc-0af2-4c9a-a0a0-d18c590ed03e"
-    }
-  ],
-  "admins": [
-    {
-      "id": "2764183c-5e75-4ae6-8833-503cd5f4dcb0"
-    }
-  ]
-}
-
-
-
\ No newline at end of file diff --git a/api/update-recordset.html b/api/update-recordset.html deleted file mode 100644 index bb1efb3f2..000000000 --- a/api/update-recordset.html +++ /dev/null @@ -1,233 +0,0 @@ -VinylDNS: Update RecordSet

Update RecordSet

- -

Updates a RecordSet. This performs a delete of the old record, and inserts the new record. -

- -

HTTP REQUEST

- -
-

PUT /zones/{zoneId}/recordsets/{recordSetId}

-
- -

HTTP REQUEST PARAMS

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametyperequired?description
zoneIdstringyesid of the zone where the recordset belongs
idstringyesthe id of the recordset being updated
namestringyesthe name of the recordset being updated
typestringyesthe type of recordset
ttlintegeryesthe TTL in seconds
recordsarray of record datayesrecord data for recordset, see RecordSet Model
- -

EXAMPLE HTTP REQUEST

-
{
-  "id": "dd9c1120-0594-4e61-982e-8ddcbc8b2d21",
-  "name": "already-exists",
-  "type": "A",
-  "ttl": 38400,
-  "records": [
-    {
-      "address": "6.5.4.3"
-    }
-  ],
-  "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c"
-}
-
-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
202Accepted - the update is valid and has been accepted for processing; the record set change resource is returned in the response body
400Bad Request - the zone being updated is not active; typically because the connection information does not exist for the zone
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - The user does not have the access required to perform the action
404Not Found - Zone or RecordSet not found
409Conflict - There is an existing pending change against this record set
422Unprocessable Entity
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zonemapcontains information about the zone when the change was created
recordSetmapcontains the recordset model
updatesmapnew data to overwrite current record set
userIdstringthe user id that initiated the change
changeTypestringtype of change requested (Create, Update, Delete); in this case Update
createdstringthe time (GMT) the change was initiated
idstringthe id of the change. This is not the id of the recordset
- -

EXAMPLE RESPONSE

- -
{
-  "zone": {
-    "name": "vinyl.",
-    "email": "test@test.com",
-    "status": "Active",
-    "created": "2017-02-23T14:52:44Z",
-    "updated": "2017-02-23T15:12:33Z",
-    "id": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-    "shared": false,
-    "acl": {
-      "rules": [
-
-      ]
-    },
-    "adminGroupId": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-    "latestSync": "2017-02-23T15:12:33Z"
-  },
-  "recordSet": {
-    "type": "A",
-    "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "name": "already-exists",
-    "ttl": 38400,
-    "status": "PendingUpdate",
-    "created": "2017-02-23T15:12:41Z",
-    "updated": "2017-02-23T15:12:41Z",
-    "records": [
-      {
-        "address": "6.6.6.1"
-      }
-    ],
-    "id": "dd9c1120-0594-4e61-982e-8ddcbc8b2d21",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae"
-  },
-  "userId": "0215d410-9b7e-4636-89fd-b6b948a06347",
-  "changeType": "Update",
-  "status": "Pending",
-  "created": "2017-02-23T15:12:41Z",
-  "updates": {
-    "type": "A",
-    "zoneId": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "name": "already-exists",
-    "ttl": 38400,
-    "status": "Active",
-    "created": "2017-02-23T15:12:33Z",
-    "records": [
-      {
-        "address": "6.6.6.6"
-      }
-    ],
-    "id": "dd9c1120-0594-4e61-982e-8ddcbc8b2d21",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae"
-  },
-  "id": "df69bc45-2942-4fb7-813c-4dd21cfad7fa"
-}
-
-
-
\ No newline at end of file diff --git a/api/update-zone.html b/api/update-zone.html deleted file mode 100644 index e72966593..000000000 --- a/api/update-zone.html +++ /dev/null @@ -1,156 +0,0 @@ -VinylDNS: Update Zone

Update Zone

- -

Updates an existing zone that has already been connected to. Used to update the ACL rules or zone level meta data like the zone connection or email.

- -

HTTP REQUEST

- -
-

PUT /zones/{zoneId}

-
- -

HTTP REQUEST PARAMS

- - - - - - - -
zone fields, refer to zone model
- -

EXAMPLE HTTP REQUEST

- -
{
-  "name": "vinyl.",
-  "email": "update@update.com",
-  "status": "Active",
-  "created": "2017-02-23T14:52:44Z",
-  "updated": "2017-02-23T19:05:33Z",
-  "id": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-  "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-  "shared": false,
-  "acl": {
-    "rules": []
-  },
-  "adminGroupId": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-  "latestSync": "2017-02-23T19:05:33Z",
-  "adminGroupName": "test",
-  "hiddenKey": "",
-  "hiddenTransferKey": ""
-}
-
-
- -

HTTP RESPONSE TYPES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Codedescription
200Accepted - The zone change is returned in the response body
400Bad Request - connection failed
401Unauthorized - The authentication information provided is invalid. Typically the request was not signed properly, or the access key and secret used to sign the request are incorrect
403Forbidden - the user does not have the access required to perform the action
404Not Found - Zone not found
409Conflict - Zone has a pending update
- -

HTTP RESPONSE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedescription
zonemapzone sent with update request, refer to zone model
userIdstringthe user id that initiated the change
changeTypestringtype of change requested (Create, Update, Sync, Delete); in this case Update
createdstringthe time (GMT) the change was initiated
idstringthe id of the change. This is not the id of the zone
statusstringthe status of the zone change
- -

EXAMPLE RESPONSE

- -
{
-  "zone": {
-    "name": "vinyl.",
-    "email": "update@update.com",
-    "status": "Active",
-    "created": "2017-02-23T14:52:44Z",
-    "updated": "2017-02-23T19:23:26Z",
-    "id": "2467dc05-68eb-4498-a9d5-78d24bb0893c",
-    "account": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-    "shared": false,
-    "acl": {
-      "rules": []
-    },
-    "adminGroupId": "9b22b686-54bc-47fb-a8f8-cdc48e6d04ae",
-    "latestSync": "2017-02-23T19:05:33Z"
-  },
-  "userId": "0215d410-9b7e-4636-89fd-b6b948a06347",
-  "changeType": "Update",
-  "status": "Pending",
-  "created": "2017-02-23T19:23:26Z",
-  "id": "d1fcd28d-61fe-4c24-ac0b-4377d66d50db"
-}
-
-
-
\ No newline at end of file diff --git a/api/zone-model.html b/api/zone-model.html deleted file mode 100644 index a83670da3..000000000 --- a/api/zone-model.html +++ /dev/null @@ -1,370 +0,0 @@ -VinylDNS: Zone Model

Zone Model

- -

Table of Contents

- - - -

ZONE ATTRIBUTES

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fieldtypedescription
statusstringActive - the zone is connected and ready for use; Syncing - the zone is currently syncing with the DNS backend and is not available until syncing is complete.
updateddate-timeThe last time the zone was changed. Note: this does not include changes to record sets, only the zone entity itself
namestringThe name of the zone
adminGroupIdstringThe id of the administrators group for the zone
createddate-timeThe time when the zone was first created
accountstringDEPRECATED The account that created the zone
emailstringThe distribution email for the zone
connectionZoneConnectionThe connection used to issue DDNS updates to the backend zone. If not provided, default keys will be used. See the Zone Connection Attributes for more information
transferConnectionZoneConnectionThe connection that is used to sync the zone with the DNS backend. This can be different than the update connection. If not provided, default keys will be used
sharedbooleanDEPRECATED An indicator that the zone is shared with anyone. No longer used as ACLs are now used to manage zones.
aclZoneACLThe access control rules governing the zone. See the Zone ACL Rule Attributes for more information
idstringThe unique identifier for this zone
- -

ZONE EXAMPLE

- -
{
-  "status": "Active",
-  "updated": "2016-12-16T15:27:28Z",
-  "name": "ok.",
-  "adminGroupId": "92b298e8-97db-4f1b-881b-fd08ca0dd311",
-  "created": "2016-12-16T15:27:26Z",
-  "account": "92b298e8-97db-4f1b-881b-fd08ca0dd311",
-  "email": "test@test.com",
-  "connection": {
-    "primaryServer": "127.0.0.1:5301",
-    "keyName": "vinyl.",
-    "name": "ok.",
-    "key": "OBF:1:W1FXgpOjjrQAABAARrZmyLjFSOuFYTAw81mhvNEmNAc4RnYzPjJQMEjVQWWLRohu7gRAVw=="
-  },
-  "transferConnection": {
-    "primaryServer": "127.0.0.1:5301",
-    "keyName": "vinyl.",
-    "name": "ok.",
-    "key": "OBF:1:W1FXgpOjjrQAABAARrZmyLjFSOuFYTAw81mhvNEmNAc4RnYzPjJQMEjVQWWLRohu7gRAVw=="
-  },
-  "shared": false,
-  "acl": {
-    "rules": [
-      {
-        "accessLevel": "Write",
-        "userId": "<uuid>",
-        "description": "some_test_rule",
-        "recordTypes": []
-      },
-      {
-        "recordMask": ".*",
-        "accessLevel": "Write",
-        "userId": "<uuid>",
-        "description": "some_test_rule",
-        "recordTypes": []
-      },
-      {
-        "recordMask": "test.*",
-        "accessLevel": "Read",
-        "groupId": "<uuid>",
-        "description": "some_test_rule",
-        "recordTypes": []
-      }
-    ]
-  },
-  "id": "9cbdd3ac-9752-4d56-9ca0-6a1a14fc5562"
-}
-
-
- -

ZONE CONNECTION ATTRIBUTES

-

Zone Connection specifies the connection information to the backend DNS server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fieldtypedescription
primaryServerstringThe ip address or host that is connected to. This can take a port as well 127.0.0.1:5300. If no port is specified, 53 will be assumed.
keyNamestringThe name of the DNS key that has access to the DNS server and zone. Note: For the transfer connection, the key must be given allow-transfer access to the zone. For the primary connection, the key must be given allow-update access to the zone.
namestringA user identifier for the connection.
keystringThe TSIG secret key used to sign requests when communicating with the primary server. Note: After creating the zone, the key value itself is hashed and obfuscated, so it will be unusable from a client perspective.
- -

ZONE CONNECTION EXAMPLE

- -
{
-  "primaryServer": "127.0.0.1:5301",
-  "keyName": "vinyl.",
-  "name": "ok.",
-  "key": "OBF:1:W1FXgpOjjrQAABAARrZmyLjFSOuFYTAw81mhvNEmNAc4RnYzPjJQMEjVQWWLRohu7gRAVw=="
-}
-
-
- -

ZONE ACL RULE ATTRIBUTES

-

ACL Rules are used to govern user and group access to record operations on a zone. ACL Rules can be associated with a specific user, or all users in a specified group. If neither a user or a group is attached to an ACL rule, then the rule applies to all users in the system. -

-Use the Zone Update endpoint to update the acl attribute of the zone

- -
-

Important! If a user is mentioned on an ACL Rule directly, or is a member of a group that is mentioned on an ACL Rule, that user will be able to see the zone.

-
- -
-

Rules made without selecting a group or user will apply to all users in VinylDNS.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fieldtypedescription
recordMaskstring(optional) A regular expression that is used to match against record names. If left empty, then all records will be matched for the rule. All records matching the match will be governed by this rule.
recordTypesArray[String]An array of all record types that this rule applies to. If left empty, then all record types will be governed by this rule.
accessLevelstringNoAccess - cannot see the data for the record; Read - can read only the record; Write - the user can create and edit records, but cannot delete them; Delete - the user can read, create, update, and delete records
userIdstring(optional) The unique identifier for the user the rule applies to. Note: this is not the name of the user, but their uuid in VinylDNS
groupIdstring(optional) The unique identifier for the group the rule applies to. Note: you cannot set both the userId and groupId, only one
descriptionstring(optional) A user entered description for the rule
- -

The priority of ACL Rules in descending precedence:

-
    -
  1. Individual rules placed on a user
  2. -
  3. Rules placed on groups that a user is in
  4. -
  5. Rules placed on all users in VinylDNS
  6. -
- -
-

Note: Being in the admin group of a zone will grant users full access regardless of ACL Rules

-
- -

For conflicting rules, the rule that is more specific will take precedence. For example, if the account jdoe201 was given Read access to all records in a zone -through the rule:

- -
{
-  "userId": "<uuid>",
-  "accessLevel": "Read",
-}
-
-
- -

and then Write access to only A records through the rule:

- -
{
-  "userId": "<uuid>",
-  "accessLevel": "Write",
-  "recordTypes": ["A"]
-}
-
-
- -

and then Delete access to only A records that matched the expression *dev* through the rule:

- -
{
-  "userId": "<uuid>",
-  "accessLevel": "Delete",
-  "recordTypes": ["A"],
-  "recordMask": "*dev*"
-}
-
-
- -

then the rule with the recordMask will take precedence and give Delete access to matched A RecordSets, the rule with recordTypes will -take precedence and give Write access to all other A records, and the more broad rule will give Read access to all other record types in the zone

- -

ZONE ACL RULE EXAMPLES

-

Grant read/write/delete access to www.* records of type A, AAAA, CNAME to one user -Under this rule, the user specified will be able to view, create, edit, and delete records in the zone that match the expression www.* and are of type A, AAAA, or CNAME.

- -
{
-  "recordMask": "www.*",
-  "accessLevel": "Delete",
-  "userId": "<uuid>",
-  "recordTypes": ["A", "AAAA", "CNAME"]
-}
-
-
- -

Grant read only access to all VinylDNS users to A, AAAA, CNAME records

- -
{
-  "accessLevel": "Read",
-  "recordTypes": ["A", "AAAA", "CNAME"]
-}
-
-
- -

Grant read/write/delete access to records of type A, AAAA, CNAME to one group*

- -
{
-  "accessLevel": "Delete",
-  "groupId": "<uuid>",
-  "recordTypes": ["A", "AAAA", "CNAME"]
-}
-
-
- -

PTR ACL RULES WITH CIDR MASKS

-

Acl rules can be applied to specific record types and can include record masks to further narrow down which records they -apply to. These record masks apply to record names, but because PTR record names are part their reverse zone ip, the use of regular -expressions for record masks are not supported. -

-Instead PTR record masks must be CIDR rules, which will denote a range of ip addresses that the rule will apply to. -While more information and useful CIDR rule utility tools can be found online, CIDR rules describe how many bits of an ip address’ binary representation -must be the same for a match.

- -

PTR ACL RULES WITH CIDR MASKS EXAMPLE

-

The ACL Rule

- -
{
-    recordTypes: ["PTR"],
-    accessLevel: "Read"
-}
-
-
- -

Will give Read permissions to PTR Record Sets to all users in VinylDNS -

-The IPv4 ACL Rule

- -
{
-    recordTypes: ["PTR"],
-    accessLevel: "Read",
-    recordMask: "100.100.100.100/16"
-}
-
-
- -

Will give Read permissions to PTR Record Sets 100.100.000.000 to 100.100.255.255, as 16 bits is half of an IPv4 address -

-The IPv6 ACL Rule

- -
{
-    recordTypes: ["PTR"],
-    accessLevel: "Read",
-    recordMask: "1000:1000:1000:1000:1000:1000:1000:1000/64"
-}
-
-
- -

Will give Read permissions to PTR Record Sets 1000:1000:1000:1000:0000:0000:0000:0000 to 1000:1000:1000:1000:FFFF:FFFF:FFFF:FFFF, as 64 bits is half of an IPv6 address -

-
\ No newline at end of file diff --git a/css/codemirror.css b/css/codemirror.css deleted file mode 100644 index 18b0bf70d..000000000 --- a/css/codemirror.css +++ /dev/null @@ -1,347 +0,0 @@ -/* BASICS */ - -.CodeMirror { - /* Set height, width, borders, and global font properties here */ - font-family: monospace; - height: 300px; - color: black; -} - -/* PADDING */ - -.CodeMirror-lines { - padding: 4px 0; /* Vertical padding around content */ -} -.CodeMirror pre { - padding: 0 4px; /* Horizontal padding of content */ -} - -.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - background-color: white; /* The little square between H and V scrollbars */ -} - -/* GUTTER */ - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; - white-space: nowrap; -} -.CodeMirror-linenumbers {} -.CodeMirror-linenumber { - padding: 0 3px 0 5px; - min-width: 20px; - text-align: right; - color: #999; - white-space: nowrap; -} - -.CodeMirror-guttermarker { color: black; } -.CodeMirror-guttermarker-subtle { color: #999; } - -/* CURSOR */ - -.CodeMirror-cursor { - border-left: 1px solid black; - border-right: none; - width: 0; -} -/* Shown when moving in bi-directional text */ -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver; -} -.cm-fat-cursor .CodeMirror-cursor { - width: auto; - border: 0 !important; - background: #7e7; -} -.cm-fat-cursor div.CodeMirror-cursors { - z-index: 1; -} - -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; - background-color: #7e7; -} -@-moz-keyframes blink { - 0% {} - 50% { background-color: transparent; } - 100% {} -} -@-webkit-keyframes blink { - 0% {} - 50% { background-color: transparent; } - 100% {} -} -@keyframes blink { - 0% {} - 50% { background-color: transparent; } - 100% {} -} - -/* Can style cursor different in overwrite (non-insert) mode */ -.CodeMirror-overwrite .CodeMirror-cursor {} - -.cm-tab { display: inline-block; text-decoration: inherit; } - -.CodeMirror-rulers { - position: absolute; - left: 0; right: 0; top: -50px; bottom: -20px; - overflow: hidden; -} -.CodeMirror-ruler { - border-left: 1px solid #ccc; - top: 0; bottom: 0; - position: absolute; -} - -/* DEFAULT THEME */ - -.cm-s-default .cm-header {color: blue;} -.cm-s-default .cm-quote {color: #090;} -.cm-negative {color: #d44;} -.cm-positive {color: #292;} -.cm-header, .cm-strong {font-weight: bold;} -.cm-em {font-style: italic;} -.cm-link {text-decoration: underline;} -.cm-strikethrough {text-decoration: line-through;} - -.cm-s-default .cm-keyword {color: #708;} -.cm-s-default .cm-atom {color: #219;} -.cm-s-default .cm-number {color: #164;} -.cm-s-default .cm-def {color: #00f;} -.cm-s-default .cm-variable, -.cm-s-default .cm-punctuation, -.cm-s-default .cm-property, -.cm-s-default .cm-operator {} -.cm-s-default .cm-variable-2 {color: #05a;} -.cm-s-default .cm-variable-3 {color: #085;} -.cm-s-default .cm-comment {color: #a50;} -.cm-s-default .cm-string {color: #a11;} -.cm-s-default .cm-string-2 {color: #f50;} -.cm-s-default .cm-meta {color: #555;} -.cm-s-default .cm-qualifier {color: #555;} -.cm-s-default .cm-builtin {color: #30a;} -.cm-s-default .cm-bracket {color: #997;} -.cm-s-default .cm-tag {color: #170;} -.cm-s-default .cm-attribute {color: #00c;} -.cm-s-default .cm-hr {color: #999;} -.cm-s-default .cm-link {color: #00c;} - -.cm-s-default .cm-error {color: #f00;} -.cm-invalidchar {color: #f00;} - -.CodeMirror-composing { border-bottom: 2px solid; } - -/* Default styles for common addons */ - -div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} -div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} -.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } -.CodeMirror-activeline-background {background: #e8f2ff;} - -/* STOP */ - -/* The rest of this file contains styles related to the mechanics of - the editor. You probably shouldn't touch them. */ - -.CodeMirror { - position: relative; - overflow: hidden; - background: white; -} - -.CodeMirror-scroll { - overflow: scroll !important; /* Things will break if this is overridden */ - /* 30px is the magic margin used to hide the element's real scrollbars */ - /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; /* Prevent dragging from highlighting the element */ - position: relative; -} -.CodeMirror-sizer { - position: relative; - border-right: 30px solid transparent; -} - -/* The fake, visible scrollbars. Used to force redraw during scrolling - before actual scrolling happens, thus preventing shaking and - flickering artifacts. */ -.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - position: absolute; - z-index: 6; - display: none; -} -.CodeMirror-vscrollbar { - right: 0; top: 0; - overflow-x: hidden; - overflow-y: scroll; -} -.CodeMirror-hscrollbar { - bottom: 0; left: 0; - overflow-y: hidden; - overflow-x: scroll; -} -.CodeMirror-scrollbar-filler { - right: 0; bottom: 0; -} -.CodeMirror-gutter-filler { - left: 0; bottom: 0; -} - -.CodeMirror-gutters { - position: absolute; left: 0; top: 0; - min-height: 100%; - z-index: 3; -} -.CodeMirror-gutter { - white-space: normal; - height: 100%; - display: inline-block; - vertical-align: top; - margin-bottom: -30px; - /* Hack to make IE7 behave */ - *zoom:1; - *display:inline; -} -.CodeMirror-gutter-wrapper { - position: absolute; - z-index: 4; - background: none !important; - border: none !important; -} -.CodeMirror-gutter-background { - position: absolute; - top: 0; bottom: 0; - z-index: 4; -} -.CodeMirror-gutter-elt { - position: absolute; - cursor: default; - z-index: 4; -} -.CodeMirror-gutter-wrapper { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -.CodeMirror-lines { - cursor: text; - min-height: 1px; /* prevents collapsing before first draw */ -} -.CodeMirror pre { - /* Reset some styles that the rest of the page might have set */ - -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; - -webkit-tap-highlight-color: transparent; - -webkit-font-variant-ligatures: none; - font-variant-ligatures: none; -} -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; -} - -.CodeMirror-linebackground { - position: absolute; - left: 0; right: 0; top: 0; bottom: 0; - z-index: 0; -} - -.CodeMirror-linewidget { - position: relative; - z-index: 2; - overflow: auto; -} - -.CodeMirror-widget {} - -.CodeMirror-code { - outline: none; -} - -/* Force content-box sizing for the elements where we expect it */ -.CodeMirror-scroll, -.CodeMirror-sizer, -.CodeMirror-gutter, -.CodeMirror-gutters, -.CodeMirror-linenumber { - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.CodeMirror-measure { - position: absolute; - width: 100%; - height: 0; - overflow: hidden; - visibility: hidden; -} - -.CodeMirror-cursor { - position: absolute; - pointer-events: none; -} -.CodeMirror-measure pre { position: static; } - -div.CodeMirror-cursors { - visibility: hidden; - position: relative; - z-index: 3; -} -div.CodeMirror-dragcursors { - visibility: visible; -} - -.CodeMirror-focused div.CodeMirror-cursors { - visibility: visible; -} - -.CodeMirror-selected { background: #d9d9d9; } -.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } -.CodeMirror-crosshair { cursor: crosshair; } -.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; } -.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } - -.cm-searching { - background: #ffa; - background: rgba(255, 255, 0, .4); -} - -/* IE7 hack to prevent it from returning funny offsetTops on the spans */ -.CodeMirror span { *vertical-align: text-bottom; } - -/* Used to force a border model for a node */ -.cm-force-border { padding-right: .1px; } - -@media print { - /* Hide the cursor when printing */ - .CodeMirror div.CodeMirror-cursors { - visibility: hidden; - } -} - -/* See issue #2901 */ -.cm-tab-wrap-hack:after { content: ''; } - -/* Help users use markselection to safely style text background */ -span.CodeMirror-selectedtext { background: none; } diff --git a/css/kazari-style.css b/css/kazari-style.css deleted file mode 100644 index 7f8bfa034..000000000 --- a/css/kazari-style.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css);@import url('https://fonts.googleapis.com/css?family=Open+Sans:300, 400, 600, 700');.alert-kazari,.compiler-kazari{font-size:13px;box-sizing:border-box}.compiler-kazari{position:relative;font-family:"Open Sans",sans-serif;border:none;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:2px;-moz-border-radius-bottomleft:2px;border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px}.compiler-kazari.compiler-kazari-background{background:#141414}.compiler-kazari ul{list-style-type:none;margin:0;padding:0;display:-webkit-box;display:-moz-box;display:box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-moz-box-align:center;box-align:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;-o-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:start}.compiler-kazari ul li.compiler-kazari-border{border-right:1px solid rgba(255,255,255,.15)}.compiler-kazari ul li a{font-weight:600;display:inline-block;text-decoration:none;padding:5px 14px;transition:background .3s ease;cursor:pointer}.alert-hidden-kazari,.modal-kazari .modal-kazari-modal-state{display:none}.compiler-kazari ul li a.compiler-kazari-color{color:#fff}.compiler-kazari ul li a i{margin-right:4px}.compiler-kazari ul li a:hover{background:rgba(255,255,255,.06)}.compiler-kazari ul li a:active{background:rgba(255,255,255,.1)}.compiler-kazari ul li .compiling-kazari{color:rgba(255,255,255,.5);background:rgba(255,255,255,.06);pointer-events:none}.compiler-kazari ul li:last-child{margin-left:auto;border-right:none}.compiler-kazari ul li:last-child a{color:rgba(255,255,255,.5);transition:all .3s ease}.compiler-kazari ul li:last-child a:hover{color:#fff;background:0 0;text-decoration:underline}.alert-kazari{padding:7px 10px;color:#fff;font-family:monospace;transition:all .3s ease}.alert-success-kazari{background:#1ABC9C}.alert-error-kazari{background:#EF5C54}.modal-kazari{margin-top:40px}.modal-kazari label{cursor:pointer;margin-bottom:0}.modal-kazari .modal-kazari-fade-screen{position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(20,20,20,.9);opacity:0;transition:opacity .25s ease;visibility:hidden;z-index:99999}.modal-kazari .modal-kazari-bg{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer}.modal-kazari .modal-kazari-close{cursor:pointer;margin-bottom:14px;text-align:right}.modal-kazari .modal-kazari-close i{font-size:24px;color:rgba(20,20,20,.2);transition:color .3s ease}.modal-kazari .modal-kazari-close i:hover{color:#141414}.modal-kazari .modal-kazari-inner{box-sizing:border-box;padding:30px;background-color:#fff;margin:auto;max-height:95%;overflow:auto;position:relative;transition:opacity .25s ease;width:100%}.modal-kazari .modal-kazari-state:checked+.modal-kazari-fade-screen{opacity:1;visibility:visible}.modal-kazari-open{overflow:hidden}.modal-kazari-close{overflow:auto}#page-content-wrapper section pre{margin-bottom:0} \ No newline at end of file diff --git a/css/monokai.css b/css/monokai.css deleted file mode 100644 index 7c8a4c5d0..000000000 --- a/css/monokai.css +++ /dev/null @@ -1,36 +0,0 @@ -/* Based on Sublime Text's Monokai theme */ - -.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; } -.cm-s-monokai div.CodeMirror-selected { background: #49483E; } -.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); } -.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); } -.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; } -.cm-s-monokai .CodeMirror-guttermarker { color: white; } -.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; } -.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; } -.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; } - -.cm-s-monokai span.cm-comment { color: #75715e; } -.cm-s-monokai span.cm-atom { color: #ae81ff; } -.cm-s-monokai span.cm-number { color: #ae81ff; } - -.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; } -.cm-s-monokai span.cm-keyword { color: #f92672; } -.cm-s-monokai span.cm-builtin { color: #66d9ef; } -.cm-s-monokai span.cm-string { color: #e6db74; } - -.cm-s-monokai span.cm-variable { color: #f8f8f2; } -.cm-s-monokai span.cm-variable-2 { color: #9effff; } -.cm-s-monokai span.cm-variable-3 { color: #66d9ef; } -.cm-s-monokai span.cm-def { color: #fd971f; } -.cm-s-monokai span.cm-bracket { color: #f8f8f2; } -.cm-s-monokai span.cm-tag { color: #f92672; } -.cm-s-monokai span.cm-header { color: #ae81ff; } -.cm-s-monokai span.cm-link { color: #ae81ff; } -.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; } - -.cm-s-monokai .CodeMirror-activeline-background { background: #373831; } -.cm-s-monokai .CodeMirror-matchingbracket { - text-decoration: underline; - color: white !important; -} diff --git a/css/palette.css b/css/palette.css deleted file mode 100644 index 363291a52..000000000 --- a/css/palette.css +++ /dev/null @@ -1,61 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:400,300,700); -.technologies { - background: #1C2C52; } - -#site-header .navbar-wrapper a { - color: #fff; } - -#site-footer { - background: #162341; } - -::-moz-selection { - background: #02B4E5; - color: #FFFFFF; } - -::selection { - background: #02B4E5; - color: #FFFFFF; } - -.jumbotron { - background-color: #1C2C52; } - .jumbotron .btn-outline-inverse { - border: 2px solid #FFFFFF; - color: #FFFFFF; } - .jumbotron .btn-outline-inverse:hover, .jumbotron .btn-outline-inverse:focus { - background: #FFFFFF; - color: #1C2C52; } - -pre { - background: rgba(244, 243, 244, 0.6); } - pre code { - color: inherit; - background-color: transparent; } - pre .hljs { - background: none; } - -body.docs { - background: #F4F3F4; } - -#content code { - color: #837F84; - background-color: #F4F3F4; } - -#sidebar-wrapper { - background: #1C2C52; } - -#page-content-wrapper .nav a { - color: #837F84; } - #page-content-wrapper .nav a:hover { - color: #453E46; } - #page-content-wrapper .nav a i { - font-size: 18px; } - -.sidebar-nav > li a:hover { - background: #162341; } -.sidebar-nav > li a.active { - border-left: 3px solid #02B4E5; - color: #fff; } -.sidebar-nav > .sidebar-brand a { - background: #162341; } - .sidebar-nav > .sidebar-brand a:hover { - background: #162341; } diff --git a/css/style.css b/css/style.css deleted file mode 100644 index 52e34c706..000000000 --- a/css/style.css +++ /dev/null @@ -1,6192 +0,0 @@ -@charset "UTF-8"; -@import url(https://fonts.googleapis.com/css?family=Lato:400,300,700); -/*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; } - -body { - margin: 0; } - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; } - -audio:not([controls]) { - display: none; - height: 0; } - -[hidden], -template { - display: none; } - -a { - background-color: transparent; } - -a:active, -a:hover { - outline: 0; } - -abbr[title] { - border-bottom: 1px dotted; } - -b, -strong { - font-weight: bold; } - -dfn { - font-style: italic; } - -h1 { - font-size: 2em; - margin: 0.67em 0; } - -mark { - background: #ff0; - color: #000; } - -small { - font-size: 80%; } - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -img { - border: 0; } - -svg:not(:root) { - overflow: hidden; } - -figure { - margin: 1em 40px; } - -hr { - box-sizing: content-box; - height: 0; } - -pre { - overflow: auto; } - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; } - -button { - overflow: visible; } - -button, -select { - text-transform: none; } - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; } - -button[disabled], -html input[disabled] { - cursor: default; } - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -input { - line-height: normal; } - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; } - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; } - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -legend { - border: 0; - padding: 0; } - -textarea { - overflow: auto; } - -optgroup { - font-weight: bold; } - -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; - box-shadow: none !important; - text-shadow: none !important; } - - a, - a:visited { - text-decoration: underline; } - - a[href]:after { - content: " (" attr(href) ")"; } - - abbr[title]:after { - content: " (" attr(title) ")"; } - - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; } - - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; } - - thead { - display: table-header-group; } - - tr, - img { - page-break-inside: avoid; } - - img { - max-width: 100% !important; } - - p, - h2, - h3 { - orphans: 3; - widows: 3; } - - h2, - h3 { - page-break-after: avoid; } - - .navbar { - display: none; } - - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; } - - .label { - border: 1px solid #000; } - - .table { - border-collapse: collapse !important; } - .table td, - .table th { - background-color: #fff !important; } - - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; } } -@font-face { - font-family: 'Glyphicons Halflings'; - src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot"); - src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); } -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -.glyphicon-asterisk:before { - content: "\002a"; } - -.glyphicon-plus:before { - content: "\002b"; } - -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; } - -.glyphicon-minus:before { - content: "\2212"; } - -.glyphicon-cloud:before { - content: "\2601"; } - -.glyphicon-envelope:before { - content: "\2709"; } - -.glyphicon-pencil:before { - content: "\270f"; } - -.glyphicon-glass:before { - content: "\e001"; } - -.glyphicon-music:before { - content: "\e002"; } - -.glyphicon-search:before { - content: "\e003"; } - -.glyphicon-heart:before { - content: "\e005"; } - -.glyphicon-star:before { - content: "\e006"; } - -.glyphicon-star-empty:before { - content: "\e007"; } - -.glyphicon-user:before { - content: "\e008"; } - -.glyphicon-film:before { - content: "\e009"; } - -.glyphicon-th-large:before { - content: "\e010"; } - -.glyphicon-th:before { - content: "\e011"; } - -.glyphicon-th-list:before { - content: "\e012"; } - -.glyphicon-ok:before { - content: "\e013"; } - -.glyphicon-remove:before { - content: "\e014"; } - -.glyphicon-zoom-in:before { - content: "\e015"; } - -.glyphicon-zoom-out:before { - content: "\e016"; } - -.glyphicon-off:before { - content: "\e017"; } - -.glyphicon-signal:before { - content: "\e018"; } - -.glyphicon-cog:before { - content: "\e019"; } - -.glyphicon-trash:before { - content: "\e020"; } - -.glyphicon-home:before { - content: "\e021"; } - -.glyphicon-file:before { - content: "\e022"; } - -.glyphicon-time:before { - content: "\e023"; } - -.glyphicon-road:before { - content: "\e024"; } - -.glyphicon-download-alt:before { - content: "\e025"; } - -.glyphicon-download:before { - content: "\e026"; } - -.glyphicon-upload:before { - content: "\e027"; } - -.glyphicon-inbox:before { - content: "\e028"; } - -.glyphicon-play-circle:before { - content: "\e029"; } - -.glyphicon-repeat:before { - content: "\e030"; } - -.glyphicon-refresh:before { - content: "\e031"; } - -.glyphicon-list-alt:before { - content: "\e032"; } - -.glyphicon-lock:before { - content: "\e033"; } - -.glyphicon-flag:before { - content: "\e034"; } - -.glyphicon-headphones:before { - content: "\e035"; } - -.glyphicon-volume-off:before { - content: "\e036"; } - -.glyphicon-volume-down:before { - content: "\e037"; } - -.glyphicon-volume-up:before { - content: "\e038"; } - -.glyphicon-qrcode:before { - content: "\e039"; } - -.glyphicon-barcode:before { - content: "\e040"; } - -.glyphicon-tag:before { - content: "\e041"; } - -.glyphicon-tags:before { - content: "\e042"; } - -.glyphicon-book:before { - content: "\e043"; } - -.glyphicon-bookmark:before { - content: "\e044"; } - -.glyphicon-print:before { - content: "\e045"; } - -.glyphicon-camera:before { - content: "\e046"; } - -.glyphicon-font:before { - content: "\e047"; } - -.glyphicon-bold:before { - content: "\e048"; } - -.glyphicon-italic:before { - content: "\e049"; } - -.glyphicon-text-height:before { - content: "\e050"; } - -.glyphicon-text-width:before { - content: "\e051"; } - -.glyphicon-align-left:before { - content: "\e052"; } - -.glyphicon-align-center:before { - content: "\e053"; } - -.glyphicon-align-right:before { - content: "\e054"; } - -.glyphicon-align-justify:before { - content: "\e055"; } - -.glyphicon-list:before { - content: "\e056"; } - -.glyphicon-indent-left:before { - content: "\e057"; } - -.glyphicon-indent-right:before { - content: "\e058"; } - -.glyphicon-facetime-video:before { - content: "\e059"; } - -.glyphicon-picture:before { - content: "\e060"; } - -.glyphicon-map-marker:before { - content: "\e062"; } - -.glyphicon-adjust:before { - content: "\e063"; } - -.glyphicon-tint:before { - content: "\e064"; } - -.glyphicon-edit:before { - content: "\e065"; } - -.glyphicon-share:before { - content: "\e066"; } - -.glyphicon-check:before { - content: "\e067"; } - -.glyphicon-move:before { - content: "\e068"; } - -.glyphicon-step-backward:before { - content: "\e069"; } - -.glyphicon-fast-backward:before { - content: "\e070"; } - -.glyphicon-backward:before { - content: "\e071"; } - -.glyphicon-play:before { - content: "\e072"; } - -.glyphicon-pause:before { - content: "\e073"; } - -.glyphicon-stop:before { - content: "\e074"; } - -.glyphicon-forward:before { - content: "\e075"; } - -.glyphicon-fast-forward:before { - content: "\e076"; } - -.glyphicon-step-forward:before { - content: "\e077"; } - -.glyphicon-eject:before { - content: "\e078"; } - -.glyphicon-chevron-left:before { - content: "\e079"; } - -.glyphicon-chevron-right:before { - content: "\e080"; } - -.glyphicon-plus-sign:before { - content: "\e081"; } - -.glyphicon-minus-sign:before { - content: "\e082"; } - -.glyphicon-remove-sign:before { - content: "\e083"; } - -.glyphicon-ok-sign:before { - content: "\e084"; } - -.glyphicon-question-sign:before { - content: "\e085"; } - -.glyphicon-info-sign:before { - content: "\e086"; } - -.glyphicon-screenshot:before { - content: "\e087"; } - -.glyphicon-remove-circle:before { - content: "\e088"; } - -.glyphicon-ok-circle:before { - content: "\e089"; } - -.glyphicon-ban-circle:before { - content: "\e090"; } - -.glyphicon-arrow-left:before { - content: "\e091"; } - -.glyphicon-arrow-right:before { - content: "\e092"; } - -.glyphicon-arrow-up:before { - content: "\e093"; } - -.glyphicon-arrow-down:before { - content: "\e094"; } - -.glyphicon-share-alt:before { - content: "\e095"; } - -.glyphicon-resize-full:before { - content: "\e096"; } - -.glyphicon-resize-small:before { - content: "\e097"; } - -.glyphicon-exclamation-sign:before { - content: "\e101"; } - -.glyphicon-gift:before { - content: "\e102"; } - -.glyphicon-leaf:before { - content: "\e103"; } - -.glyphicon-fire:before { - content: "\e104"; } - -.glyphicon-eye-open:before { - content: "\e105"; } - -.glyphicon-eye-close:before { - content: "\e106"; } - -.glyphicon-warning-sign:before { - content: "\e107"; } - -.glyphicon-plane:before { - content: "\e108"; } - -.glyphicon-calendar:before { - content: "\e109"; } - -.glyphicon-random:before { - content: "\e110"; } - -.glyphicon-comment:before { - content: "\e111"; } - -.glyphicon-magnet:before { - content: "\e112"; } - -.glyphicon-chevron-up:before { - content: "\e113"; } - -.glyphicon-chevron-down:before { - content: "\e114"; } - -.glyphicon-retweet:before { - content: "\e115"; } - -.glyphicon-shopping-cart:before { - content: "\e116"; } - -.glyphicon-folder-close:before { - content: "\e117"; } - -.glyphicon-folder-open:before { - content: "\e118"; } - -.glyphicon-resize-vertical:before { - content: "\e119"; } - -.glyphicon-resize-horizontal:before { - content: "\e120"; } - -.glyphicon-hdd:before { - content: "\e121"; } - -.glyphicon-bullhorn:before { - content: "\e122"; } - -.glyphicon-bell:before { - content: "\e123"; } - -.glyphicon-certificate:before { - content: "\e124"; } - -.glyphicon-thumbs-up:before { - content: "\e125"; } - -.glyphicon-thumbs-down:before { - content: "\e126"; } - -.glyphicon-hand-right:before { - content: "\e127"; } - -.glyphicon-hand-left:before { - content: "\e128"; } - -.glyphicon-hand-up:before { - content: "\e129"; } - -.glyphicon-hand-down:before { - content: "\e130"; } - -.glyphicon-circle-arrow-right:before { - content: "\e131"; } - -.glyphicon-circle-arrow-left:before { - content: "\e132"; } - -.glyphicon-circle-arrow-up:before { - content: "\e133"; } - -.glyphicon-circle-arrow-down:before { - content: "\e134"; } - -.glyphicon-globe:before { - content: "\e135"; } - -.glyphicon-wrench:before { - content: "\e136"; } - -.glyphicon-tasks:before { - content: "\e137"; } - -.glyphicon-filter:before { - content: "\e138"; } - -.glyphicon-briefcase:before { - content: "\e139"; } - -.glyphicon-fullscreen:before { - content: "\e140"; } - -.glyphicon-dashboard:before { - content: "\e141"; } - -.glyphicon-paperclip:before { - content: "\e142"; } - -.glyphicon-heart-empty:before { - content: "\e143"; } - -.glyphicon-link:before { - content: "\e144"; } - -.glyphicon-phone:before { - content: "\e145"; } - -.glyphicon-pushpin:before { - content: "\e146"; } - -.glyphicon-usd:before { - content: "\e148"; } - -.glyphicon-gbp:before { - content: "\e149"; } - -.glyphicon-sort:before { - content: "\e150"; } - -.glyphicon-sort-by-alphabet:before { - content: "\e151"; } - -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; } - -.glyphicon-sort-by-order:before { - content: "\e153"; } - -.glyphicon-sort-by-order-alt:before { - content: "\e154"; } - -.glyphicon-sort-by-attributes:before { - content: "\e155"; } - -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; } - -.glyphicon-unchecked:before { - content: "\e157"; } - -.glyphicon-expand:before { - content: "\e158"; } - -.glyphicon-collapse-down:before { - content: "\e159"; } - -.glyphicon-collapse-up:before { - content: "\e160"; } - -.glyphicon-log-in:before { - content: "\e161"; } - -.glyphicon-flash:before { - content: "\e162"; } - -.glyphicon-log-out:before { - content: "\e163"; } - -.glyphicon-new-window:before { - content: "\e164"; } - -.glyphicon-record:before { - content: "\e165"; } - -.glyphicon-save:before { - content: "\e166"; } - -.glyphicon-open:before { - content: "\e167"; } - -.glyphicon-saved:before { - content: "\e168"; } - -.glyphicon-import:before { - content: "\e169"; } - -.glyphicon-export:before { - content: "\e170"; } - -.glyphicon-send:before { - content: "\e171"; } - -.glyphicon-floppy-disk:before { - content: "\e172"; } - -.glyphicon-floppy-saved:before { - content: "\e173"; } - -.glyphicon-floppy-remove:before { - content: "\e174"; } - -.glyphicon-floppy-save:before { - content: "\e175"; } - -.glyphicon-floppy-open:before { - content: "\e176"; } - -.glyphicon-credit-card:before { - content: "\e177"; } - -.glyphicon-transfer:before { - content: "\e178"; } - -.glyphicon-cutlery:before { - content: "\e179"; } - -.glyphicon-header:before { - content: "\e180"; } - -.glyphicon-compressed:before { - content: "\e181"; } - -.glyphicon-earphone:before { - content: "\e182"; } - -.glyphicon-phone-alt:before { - content: "\e183"; } - -.glyphicon-tower:before { - content: "\e184"; } - -.glyphicon-stats:before { - content: "\e185"; } - -.glyphicon-sd-video:before { - content: "\e186"; } - -.glyphicon-hd-video:before { - content: "\e187"; } - -.glyphicon-subtitles:before { - content: "\e188"; } - -.glyphicon-sound-stereo:before { - content: "\e189"; } - -.glyphicon-sound-dolby:before { - content: "\e190"; } - -.glyphicon-sound-5-1:before { - content: "\e191"; } - -.glyphicon-sound-6-1:before { - content: "\e192"; } - -.glyphicon-sound-7-1:before { - content: "\e193"; } - -.glyphicon-copyright-mark:before { - content: "\e194"; } - -.glyphicon-registration-mark:before { - content: "\e195"; } - -.glyphicon-cloud-download:before { - content: "\e197"; } - -.glyphicon-cloud-upload:before { - content: "\e198"; } - -.glyphicon-tree-conifer:before { - content: "\e199"; } - -.glyphicon-tree-deciduous:before { - content: "\e200"; } - -.glyphicon-cd:before { - content: "\e201"; } - -.glyphicon-save-file:before { - content: "\e202"; } - -.glyphicon-open-file:before { - content: "\e203"; } - -.glyphicon-level-up:before { - content: "\e204"; } - -.glyphicon-copy:before { - content: "\e205"; } - -.glyphicon-paste:before { - content: "\e206"; } - -.glyphicon-alert:before { - content: "\e209"; } - -.glyphicon-equalizer:before { - content: "\e210"; } - -.glyphicon-king:before { - content: "\e211"; } - -.glyphicon-queen:before { - content: "\e212"; } - -.glyphicon-pawn:before { - content: "\e213"; } - -.glyphicon-bishop:before { - content: "\e214"; } - -.glyphicon-knight:before { - content: "\e215"; } - -.glyphicon-baby-formula:before { - content: "\e216"; } - -.glyphicon-tent:before { - content: "\26fa"; } - -.glyphicon-blackboard:before { - content: "\e218"; } - -.glyphicon-bed:before { - content: "\e219"; } - -.glyphicon-apple:before { - content: "\f8ff"; } - -.glyphicon-erase:before { - content: "\e221"; } - -.glyphicon-hourglass:before { - content: "\231b"; } - -.glyphicon-lamp:before { - content: "\e223"; } - -.glyphicon-duplicate:before { - content: "\e224"; } - -.glyphicon-piggy-bank:before { - content: "\e225"; } - -.glyphicon-scissors:before { - content: "\e226"; } - -.glyphicon-bitcoin:before { - content: "\e227"; } - -.glyphicon-btc:before { - content: "\e227"; } - -.glyphicon-xbt:before { - content: "\e227"; } - -.glyphicon-yen:before { - content: "\00a5"; } - -.glyphicon-jpy:before { - content: "\00a5"; } - -.glyphicon-ruble:before { - content: "\20bd"; } - -.glyphicon-rub:before { - content: "\20bd"; } - -.glyphicon-scale:before { - content: "\e230"; } - -.glyphicon-ice-lolly:before { - content: "\e231"; } - -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; } - -.glyphicon-education:before { - content: "\e233"; } - -.glyphicon-option-horizontal:before { - content: "\e234"; } - -.glyphicon-option-vertical:before { - content: "\e235"; } - -.glyphicon-menu-hamburger:before { - content: "\e236"; } - -.glyphicon-modal-window:before { - content: "\e237"; } - -.glyphicon-oil:before { - content: "\e238"; } - -.glyphicon-grain:before { - content: "\e239"; } - -.glyphicon-sunglasses:before { - content: "\e240"; } - -.glyphicon-text-size:before { - content: "\e241"; } - -.glyphicon-text-color:before { - content: "\e242"; } - -.glyphicon-text-background:before { - content: "\e243"; } - -.glyphicon-object-align-top:before { - content: "\e244"; } - -.glyphicon-object-align-bottom:before { - content: "\e245"; } - -.glyphicon-object-align-horizontal:before { - content: "\e246"; } - -.glyphicon-object-align-left:before { - content: "\e247"; } - -.glyphicon-object-align-vertical:before { - content: "\e248"; } - -.glyphicon-object-align-right:before { - content: "\e249"; } - -.glyphicon-triangle-right:before { - content: "\e250"; } - -.glyphicon-triangle-left:before { - content: "\e251"; } - -.glyphicon-triangle-bottom:before { - content: "\e252"; } - -.glyphicon-triangle-top:before { - content: "\e253"; } - -.glyphicon-console:before { - content: "\e254"; } - -.glyphicon-superscript:before { - content: "\e255"; } - -.glyphicon-subscript:before { - content: "\e256"; } - -.glyphicon-menu-left:before { - content: "\e257"; } - -.glyphicon-menu-right:before { - content: "\e258"; } - -.glyphicon-menu-down:before { - content: "\e259"; } - -.glyphicon-menu-up:before { - content: "\e260"; } - -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - -body { - font-family: "Lato", sans-serif; - font-size: 15px; - line-height: 1.7; - color: #837F84; - background-color: #fff; } - -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; } - -a { - color: #02B4E5; - text-decoration: none; } - a:hover, a:focus { - color: #017899; - text-decoration: underline; } - a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; } - -figure { - margin: 0; } - -img { - vertical-align: middle; } - -.img-responsive { - display: block; - max-width: 100%; - height: auto; } - -.img-rounded { - border-radius: 6px; } - -.img-thumbnail { - padding: 4px; - line-height: 1.7; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; } - -.img-circle { - border-radius: 50%; } - -hr { - margin-top: 25px; - margin-bottom: 25px; - border: 0; - border-top: 1px solid #F4F3F4; } - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; } - -[role="button"] { - cursor: pointer; } - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 { - font-family: inherit; - font-weight: 400; - line-height: 1.1; - color: #453E46; } - h1 small, - h1 .small, h2 small, - h2 .small, h3 small, - h3 .small, h4 small, - h4 .small, h5 small, - h5 .small, h6 small, - h6 .small, - .h1 small, - .h1 .small, .h2 small, - .h2 .small, .h3 small, - .h3 .small, .h4 small, - .h4 .small, .h5 small, - .h5 .small, .h6 small, - .h6 .small { - font-weight: normal; - line-height: 1; - color: #E3E2E3; } - -h1, .h1, -h2, .h2, -h3, .h3 { - margin-top: 25px; - margin-bottom: 12.5px; } - h1 small, - h1 .small, .h1 small, - .h1 .small, - h2 small, - h2 .small, .h2 small, - .h2 .small, - h3 small, - h3 .small, .h3 small, - .h3 .small { - font-size: 65%; } - -h4, .h4, -h5, .h5, -h6, .h6 { - margin-top: 12.5px; - margin-bottom: 12.5px; } - h4 small, - h4 .small, .h4 small, - .h4 .small, - h5 small, - h5 .small, .h5 small, - .h5 .small, - h6 small, - h6 .small, .h6 small, - .h6 .small { - font-size: 75%; } - -h1, .h1 { - font-size: 36px; } - -h2, .h2 { - font-size: 30px; } - -h3, .h3 { - font-size: 24px; } - -h4, .h4 { - font-size: 18px; } - -h5, .h5 { - font-size: 15px; } - -h6, .h6 { - font-size: 13px; } - -p { - margin: 0 0 12.5px; } - -.lead { - margin-bottom: 25px; - font-size: 17px; - font-weight: 300; - line-height: 1.4; } - @media (min-width: 768px) { - .lead { - font-size: 22.5px; } } - -small, -.small { - font-size: 86%; } - -mark, -.mark { - background-color: #fcf8e3; - padding: .2em; } - -.text-left { - text-align: left; } - -.text-right { - text-align: right; } - -.text-center { - text-align: center; } - -.text-justify { - text-align: justify; } - -.text-nowrap { - white-space: nowrap; } - -.text-lowercase { - text-transform: lowercase; } - -.text-uppercase, .initialism { - text-transform: uppercase; } - -.text-capitalize { - text-transform: capitalize; } - -.text-muted { - color: #E3E2E3; } - -.text-primary { - color: #02B4E5; } - -a.text-primary:hover, -a.text-primary:focus { - color: #028cb2; } - -.text-success { - color: #3c763d; } - -a.text-success:hover, -a.text-success:focus { - color: #2b542c; } - -.text-info { - color: #31708f; } - -a.text-info:hover, -a.text-info:focus { - color: #245269; } - -.text-warning { - color: #8a6d3b; } - -a.text-warning:hover, -a.text-warning:focus { - color: #66512c; } - -.text-danger { - color: #a94442; } - -a.text-danger:hover, -a.text-danger:focus { - color: #843534; } - -.bg-primary { - color: #fff; } - -.bg-primary { - background-color: #02B4E5; } - -a.bg-primary:hover, -a.bg-primary:focus { - background-color: #028cb2; } - -.bg-success { - background-color: #dff0d8; } - -a.bg-success:hover, -a.bg-success:focus { - background-color: #c1e2b3; } - -.bg-info { - background-color: #d9edf7; } - -a.bg-info:hover, -a.bg-info:focus { - background-color: #afd9ee; } - -.bg-warning { - background-color: #fcf8e3; } - -a.bg-warning:hover, -a.bg-warning:focus { - background-color: #f7ecb5; } - -.bg-danger { - background-color: #f2dede; } - -a.bg-danger:hover, -a.bg-danger:focus { - background-color: #e4b9b9; } - -.page-header { - padding-bottom: 11.5px; - margin: 50px 0 25px; - border-bottom: 1px solid #F4F3F4; } - -ul, -ol { - margin-top: 0; - margin-bottom: 12.5px; } - ul ul, - ul ol, - ol ul, - ol ol { - margin-bottom: 0; } - -.list-unstyled { - padding-left: 0; - list-style: none; } - -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; } - .list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; } - -dl { - margin-top: 0; - margin-bottom: 25px; } - -dt, -dd { - line-height: 1.7; } - -dt { - font-weight: bold; } - -dd { - margin-left: 0; } - -.dl-horizontal dd:before, .dl-horizontal dd:after { - content: " "; - display: table; } -.dl-horizontal dd:after { - clear: both; } -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - .dl-horizontal dd { - margin-left: 180px; } } - -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #E3E2E3; } - -.initialism { - font-size: 90%; } - -blockquote { - padding: 12.5px 25px; - margin: 0 0 25px; - font-size: 18.75px; - border-left: 5px solid #F4F3F4; } - blockquote p:last-child, - blockquote ul:last-child, - blockquote ol:last-child { - margin-bottom: 0; } - blockquote footer, - blockquote small, - blockquote .small { - display: block; - font-size: 80%; - line-height: 1.7; - color: #E3E2E3; } - blockquote footer:before, - blockquote small:before, - blockquote .small:before { - content: '\2014 \00A0'; } - -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #F4F3F4; - border-left: 0; - text-align: right; } - .blockquote-reverse footer:before, - .blockquote-reverse small:before, - .blockquote-reverse .small:before, - blockquote.pull-right footer:before, - blockquote.pull-right small:before, - blockquote.pull-right .small:before { - content: ''; } - .blockquote-reverse footer:after, - .blockquote-reverse small:after, - .blockquote-reverse .small:after, - blockquote.pull-right footer:after, - blockquote.pull-right small:after, - blockquote.pull-right .small:after { - content: '\00A0 \2014'; } - -address { - margin-bottom: 25px; - font-style: normal; - line-height: 1.7; } - -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } - -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; } - -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); } - kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; } - -pre { - display: block; - padding: 12px; - margin: 0 0 12.5px; - font-size: 14px; - line-height: 1.7; - word-break: break-all; - word-wrap: break-word; - color: #453E46; - background-color: #F4F3F4; - border: 1px solid #E3E2E3; - border-radius: 4px; } - pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; } - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; } - -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; } - .container:before, .container:after { - content: " "; - display: table; } - .container:after { - clear: both; } - @media (min-width: 768px) { - .container { - width: 750px; } } - @media (min-width: 992px) { - .container { - width: 970px; } } - @media (min-width: 1200px) { - .container { - width: 1070px; } } - -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; } - .container-fluid:before, .container-fluid:after { - content: " "; - display: table; } - .container-fluid:after { - clear: both; } - -.row { - margin-left: -15px; - margin-right: -15px; } - .row:before, .row:after { - content: " "; - display: table; } - .row:after { - clear: both; } - -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; } - -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; } - -.col-xs-1 { - width: 8.3333333333%; } - -.col-xs-2 { - width: 16.6666666667%; } - -.col-xs-3 { - width: 25%; } - -.col-xs-4 { - width: 33.3333333333%; } - -.col-xs-5 { - width: 41.6666666667%; } - -.col-xs-6 { - width: 50%; } - -.col-xs-7 { - width: 58.3333333333%; } - -.col-xs-8 { - width: 66.6666666667%; } - -.col-xs-9 { - width: 75%; } - -.col-xs-10 { - width: 83.3333333333%; } - -.col-xs-11 { - width: 91.6666666667%; } - -.col-xs-12 { - width: 100%; } - -.col-xs-pull-0 { - right: auto; } - -.col-xs-pull-1 { - right: 8.3333333333%; } - -.col-xs-pull-2 { - right: 16.6666666667%; } - -.col-xs-pull-3 { - right: 25%; } - -.col-xs-pull-4 { - right: 33.3333333333%; } - -.col-xs-pull-5 { - right: 41.6666666667%; } - -.col-xs-pull-6 { - right: 50%; } - -.col-xs-pull-7 { - right: 58.3333333333%; } - -.col-xs-pull-8 { - right: 66.6666666667%; } - -.col-xs-pull-9 { - right: 75%; } - -.col-xs-pull-10 { - right: 83.3333333333%; } - -.col-xs-pull-11 { - right: 91.6666666667%; } - -.col-xs-pull-12 { - right: 100%; } - -.col-xs-push-0 { - left: auto; } - -.col-xs-push-1 { - left: 8.3333333333%; } - -.col-xs-push-2 { - left: 16.6666666667%; } - -.col-xs-push-3 { - left: 25%; } - -.col-xs-push-4 { - left: 33.3333333333%; } - -.col-xs-push-5 { - left: 41.6666666667%; } - -.col-xs-push-6 { - left: 50%; } - -.col-xs-push-7 { - left: 58.3333333333%; } - -.col-xs-push-8 { - left: 66.6666666667%; } - -.col-xs-push-9 { - left: 75%; } - -.col-xs-push-10 { - left: 83.3333333333%; } - -.col-xs-push-11 { - left: 91.6666666667%; } - -.col-xs-push-12 { - left: 100%; } - -.col-xs-offset-0 { - margin-left: 0%; } - -.col-xs-offset-1 { - margin-left: 8.3333333333%; } - -.col-xs-offset-2 { - margin-left: 16.6666666667%; } - -.col-xs-offset-3 { - margin-left: 25%; } - -.col-xs-offset-4 { - margin-left: 33.3333333333%; } - -.col-xs-offset-5 { - margin-left: 41.6666666667%; } - -.col-xs-offset-6 { - margin-left: 50%; } - -.col-xs-offset-7 { - margin-left: 58.3333333333%; } - -.col-xs-offset-8 { - margin-left: 66.6666666667%; } - -.col-xs-offset-9 { - margin-left: 75%; } - -.col-xs-offset-10 { - margin-left: 83.3333333333%; } - -.col-xs-offset-11 { - margin-left: 91.6666666667%; } - -.col-xs-offset-12 { - margin-left: 100%; } - -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; } - - .col-sm-1 { - width: 8.3333333333%; } - - .col-sm-2 { - width: 16.6666666667%; } - - .col-sm-3 { - width: 25%; } - - .col-sm-4 { - width: 33.3333333333%; } - - .col-sm-5 { - width: 41.6666666667%; } - - .col-sm-6 { - width: 50%; } - - .col-sm-7 { - width: 58.3333333333%; } - - .col-sm-8 { - width: 66.6666666667%; } - - .col-sm-9 { - width: 75%; } - - .col-sm-10 { - width: 83.3333333333%; } - - .col-sm-11 { - width: 91.6666666667%; } - - .col-sm-12 { - width: 100%; } - - .col-sm-pull-0 { - right: auto; } - - .col-sm-pull-1 { - right: 8.3333333333%; } - - .col-sm-pull-2 { - right: 16.6666666667%; } - - .col-sm-pull-3 { - right: 25%; } - - .col-sm-pull-4 { - right: 33.3333333333%; } - - .col-sm-pull-5 { - right: 41.6666666667%; } - - .col-sm-pull-6 { - right: 50%; } - - .col-sm-pull-7 { - right: 58.3333333333%; } - - .col-sm-pull-8 { - right: 66.6666666667%; } - - .col-sm-pull-9 { - right: 75%; } - - .col-sm-pull-10 { - right: 83.3333333333%; } - - .col-sm-pull-11 { - right: 91.6666666667%; } - - .col-sm-pull-12 { - right: 100%; } - - .col-sm-push-0 { - left: auto; } - - .col-sm-push-1 { - left: 8.3333333333%; } - - .col-sm-push-2 { - left: 16.6666666667%; } - - .col-sm-push-3 { - left: 25%; } - - .col-sm-push-4 { - left: 33.3333333333%; } - - .col-sm-push-5 { - left: 41.6666666667%; } - - .col-sm-push-6 { - left: 50%; } - - .col-sm-push-7 { - left: 58.3333333333%; } - - .col-sm-push-8 { - left: 66.6666666667%; } - - .col-sm-push-9 { - left: 75%; } - - .col-sm-push-10 { - left: 83.3333333333%; } - - .col-sm-push-11 { - left: 91.6666666667%; } - - .col-sm-push-12 { - left: 100%; } - - .col-sm-offset-0 { - margin-left: 0%; } - - .col-sm-offset-1 { - margin-left: 8.3333333333%; } - - .col-sm-offset-2 { - margin-left: 16.6666666667%; } - - .col-sm-offset-3 { - margin-left: 25%; } - - .col-sm-offset-4 { - margin-left: 33.3333333333%; } - - .col-sm-offset-5 { - margin-left: 41.6666666667%; } - - .col-sm-offset-6 { - margin-left: 50%; } - - .col-sm-offset-7 { - margin-left: 58.3333333333%; } - - .col-sm-offset-8 { - margin-left: 66.6666666667%; } - - .col-sm-offset-9 { - margin-left: 75%; } - - .col-sm-offset-10 { - margin-left: 83.3333333333%; } - - .col-sm-offset-11 { - margin-left: 91.6666666667%; } - - .col-sm-offset-12 { - margin-left: 100%; } } -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; } - - .col-md-1 { - width: 8.3333333333%; } - - .col-md-2 { - width: 16.6666666667%; } - - .col-md-3 { - width: 25%; } - - .col-md-4 { - width: 33.3333333333%; } - - .col-md-5 { - width: 41.6666666667%; } - - .col-md-6 { - width: 50%; } - - .col-md-7 { - width: 58.3333333333%; } - - .col-md-8 { - width: 66.6666666667%; } - - .col-md-9 { - width: 75%; } - - .col-md-10 { - width: 83.3333333333%; } - - .col-md-11 { - width: 91.6666666667%; } - - .col-md-12 { - width: 100%; } - - .col-md-pull-0 { - right: auto; } - - .col-md-pull-1 { - right: 8.3333333333%; } - - .col-md-pull-2 { - right: 16.6666666667%; } - - .col-md-pull-3 { - right: 25%; } - - .col-md-pull-4 { - right: 33.3333333333%; } - - .col-md-pull-5 { - right: 41.6666666667%; } - - .col-md-pull-6 { - right: 50%; } - - .col-md-pull-7 { - right: 58.3333333333%; } - - .col-md-pull-8 { - right: 66.6666666667%; } - - .col-md-pull-9 { - right: 75%; } - - .col-md-pull-10 { - right: 83.3333333333%; } - - .col-md-pull-11 { - right: 91.6666666667%; } - - .col-md-pull-12 { - right: 100%; } - - .col-md-push-0 { - left: auto; } - - .col-md-push-1 { - left: 8.3333333333%; } - - .col-md-push-2 { - left: 16.6666666667%; } - - .col-md-push-3 { - left: 25%; } - - .col-md-push-4 { - left: 33.3333333333%; } - - .col-md-push-5 { - left: 41.6666666667%; } - - .col-md-push-6 { - left: 50%; } - - .col-md-push-7 { - left: 58.3333333333%; } - - .col-md-push-8 { - left: 66.6666666667%; } - - .col-md-push-9 { - left: 75%; } - - .col-md-push-10 { - left: 83.3333333333%; } - - .col-md-push-11 { - left: 91.6666666667%; } - - .col-md-push-12 { - left: 100%; } - - .col-md-offset-0 { - margin-left: 0%; } - - .col-md-offset-1 { - margin-left: 8.3333333333%; } - - .col-md-offset-2 { - margin-left: 16.6666666667%; } - - .col-md-offset-3 { - margin-left: 25%; } - - .col-md-offset-4 { - margin-left: 33.3333333333%; } - - .col-md-offset-5 { - margin-left: 41.6666666667%; } - - .col-md-offset-6 { - margin-left: 50%; } - - .col-md-offset-7 { - margin-left: 58.3333333333%; } - - .col-md-offset-8 { - margin-left: 66.6666666667%; } - - .col-md-offset-9 { - margin-left: 75%; } - - .col-md-offset-10 { - margin-left: 83.3333333333%; } - - .col-md-offset-11 { - margin-left: 91.6666666667%; } - - .col-md-offset-12 { - margin-left: 100%; } } -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; } - - .col-lg-1 { - width: 8.3333333333%; } - - .col-lg-2 { - width: 16.6666666667%; } - - .col-lg-3 { - width: 25%; } - - .col-lg-4 { - width: 33.3333333333%; } - - .col-lg-5 { - width: 41.6666666667%; } - - .col-lg-6 { - width: 50%; } - - .col-lg-7 { - width: 58.3333333333%; } - - .col-lg-8 { - width: 66.6666666667%; } - - .col-lg-9 { - width: 75%; } - - .col-lg-10 { - width: 83.3333333333%; } - - .col-lg-11 { - width: 91.6666666667%; } - - .col-lg-12 { - width: 100%; } - - .col-lg-pull-0 { - right: auto; } - - .col-lg-pull-1 { - right: 8.3333333333%; } - - .col-lg-pull-2 { - right: 16.6666666667%; } - - .col-lg-pull-3 { - right: 25%; } - - .col-lg-pull-4 { - right: 33.3333333333%; } - - .col-lg-pull-5 { - right: 41.6666666667%; } - - .col-lg-pull-6 { - right: 50%; } - - .col-lg-pull-7 { - right: 58.3333333333%; } - - .col-lg-pull-8 { - right: 66.6666666667%; } - - .col-lg-pull-9 { - right: 75%; } - - .col-lg-pull-10 { - right: 83.3333333333%; } - - .col-lg-pull-11 { - right: 91.6666666667%; } - - .col-lg-pull-12 { - right: 100%; } - - .col-lg-push-0 { - left: auto; } - - .col-lg-push-1 { - left: 8.3333333333%; } - - .col-lg-push-2 { - left: 16.6666666667%; } - - .col-lg-push-3 { - left: 25%; } - - .col-lg-push-4 { - left: 33.3333333333%; } - - .col-lg-push-5 { - left: 41.6666666667%; } - - .col-lg-push-6 { - left: 50%; } - - .col-lg-push-7 { - left: 58.3333333333%; } - - .col-lg-push-8 { - left: 66.6666666667%; } - - .col-lg-push-9 { - left: 75%; } - - .col-lg-push-10 { - left: 83.3333333333%; } - - .col-lg-push-11 { - left: 91.6666666667%; } - - .col-lg-push-12 { - left: 100%; } - - .col-lg-offset-0 { - margin-left: 0%; } - - .col-lg-offset-1 { - margin-left: 8.3333333333%; } - - .col-lg-offset-2 { - margin-left: 16.6666666667%; } - - .col-lg-offset-3 { - margin-left: 25%; } - - .col-lg-offset-4 { - margin-left: 33.3333333333%; } - - .col-lg-offset-5 { - margin-left: 41.6666666667%; } - - .col-lg-offset-6 { - margin-left: 50%; } - - .col-lg-offset-7 { - margin-left: 58.3333333333%; } - - .col-lg-offset-8 { - margin-left: 66.6666666667%; } - - .col-lg-offset-9 { - margin-left: 75%; } - - .col-lg-offset-10 { - margin-left: 83.3333333333%; } - - .col-lg-offset-11 { - margin-left: 91.6666666667%; } - - .col-lg-offset-12 { - margin-left: 100%; } } -table { - background-color: transparent; } - -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #E3E2E3; - text-align: left; } - -th { - text-align: left; } - -.table { - width: 100%; - max-width: 100%; - margin-bottom: 25px; } - .table > thead > tr > th, - .table > thead > tr > td, - .table > tbody > tr > th, - .table > tbody > tr > td, - .table > tfoot > tr > th, - .table > tfoot > tr > td { - padding: 8px; - line-height: 1.7; - vertical-align: top; - border-top: 1px solid #ddd; } - .table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; } - .table > caption + thead > tr:first-child > th, - .table > caption + thead > tr:first-child > td, - .table > colgroup + thead > tr:first-child > th, - .table > colgroup + thead > tr:first-child > td, - .table > thead:first-child > tr:first-child > th, - .table > thead:first-child > tr:first-child > td { - border-top: 0; } - .table > tbody + tbody { - border-top: 2px solid #ddd; } - .table .table { - background-color: #fff; } - -.table-condensed > thead > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > th, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > th, -.table-condensed > tfoot > tr > td { - padding: 5px; } - -.table-bordered { - border: 1px solid #ddd; } - .table-bordered > thead > tr > th, - .table-bordered > thead > tr > td, - .table-bordered > tbody > tr > th, - .table-bordered > tbody > tr > td, - .table-bordered > tfoot > tr > th, - .table-bordered > tfoot > tr > td { - border: 1px solid #ddd; } - .table-bordered > thead > tr > th, - .table-bordered > thead > tr > td { - border-bottom-width: 2px; } - -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; } - -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; } - -table col[class*="col-"] { - position: static; - float: none; - display: table-column; } - -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; } - -.table > thead > tr > td.active, -.table > thead > tr > th.active, .table > thead > tr.active > td, .table > thead > tr.active > th, -.table > tbody > tr > td.active, -.table > tbody > tr > th.active, -.table > tbody > tr.active > td, -.table > tbody > tr.active > th, -.table > tfoot > tr > td.active, -.table > tfoot > tr > th.active, -.table > tfoot > tr.active > td, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; } - -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, .table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr:hover > .active, .table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; } - -.table > thead > tr > td.success, -.table > thead > tr > th.success, .table > thead > tr.success > td, .table > thead > tr.success > th, -.table > tbody > tr > td.success, -.table > tbody > tr > th.success, -.table > tbody > tr.success > td, -.table > tbody > tr.success > th, -.table > tfoot > tr > td.success, -.table > tfoot > tr > th.success, -.table > tfoot > tr.success > td, -.table > tfoot > tr.success > th { - background-color: #dff0d8; } - -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, .table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr:hover > .success, .table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; } - -.table > thead > tr > td.info, -.table > thead > tr > th.info, .table > thead > tr.info > td, .table > thead > tr.info > th, -.table > tbody > tr > td.info, -.table > tbody > tr > th.info, -.table > tbody > tr.info > td, -.table > tbody > tr.info > th, -.table > tfoot > tr > td.info, -.table > tfoot > tr > th.info, -.table > tfoot > tr.info > td, -.table > tfoot > tr.info > th { - background-color: #d9edf7; } - -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, .table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr:hover > .info, .table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; } - -.table > thead > tr > td.warning, -.table > thead > tr > th.warning, .table > thead > tr.warning > td, .table > thead > tr.warning > th, -.table > tbody > tr > td.warning, -.table > tbody > tr > th.warning, -.table > tbody > tr.warning > td, -.table > tbody > tr.warning > th, -.table > tfoot > tr > td.warning, -.table > tfoot > tr > th.warning, -.table > tfoot > tr.warning > td, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; } - -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, .table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr:hover > .warning, .table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; } - -.table > thead > tr > td.danger, -.table > thead > tr > th.danger, .table > thead > tr.danger > td, .table > thead > tr.danger > th, -.table > tbody > tr > td.danger, -.table > tbody > tr > th.danger, -.table > tbody > tr.danger > td, -.table > tbody > tr.danger > th, -.table > tfoot > tr > td.danger, -.table > tfoot > tr > th.danger, -.table > tfoot > tr.danger > td, -.table > tfoot > tr.danger > th { - background-color: #f2dede; } - -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; } - -.table-responsive { - overflow-x: auto; - min-height: 0.01%; } - @media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 18.75px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; } - .table-responsive > .table { - margin-bottom: 0; } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; } - .table-responsive > .table-bordered { - border: 0; } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; } } - -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; } - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 25px; - font-size: 22.5px; - line-height: inherit; - color: #453E46; - border: 0; - border-bottom: 1px solid #e5e5e5; } - -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; } - -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; } - -input[type="file"] { - display: block; } - -input[type="range"] { - display: block; - width: 100%; } - -select[multiple], -select[size] { - height: auto; } - -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; } - -output { - display: block; - padding-top: 7px; - font-size: 15px; - line-height: 1.7; - color: #837F84; } - -.form-control { - display: block; - width: 100%; - height: 39px; - padding: 6px 12px; - font-size: 15px; - line-height: 1.7; - color: #837F84; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } - .form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); } - .form-control::-moz-placeholder { - color: #999; - opacity: 1; } - .form-control:-ms-input-placeholder { - color: #999; } - .form-control::-webkit-input-placeholder { - color: #999; } - .form-control::-ms-expand { - border: 0; - background-color: transparent; } - .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { - background-color: #F4F3F4; - opacity: 1; } - .form-control[disabled], fieldset[disabled] .form-control { - cursor: not-allowed; } - -textarea.form-control { - height: auto; } - -input[type="search"] { - -webkit-appearance: none; } - -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 39px; } - input[type="date"].input-sm, .input-group-sm > input[type="date"].form-control, - .input-group-sm > input[type="date"].input-group-addon, - .input-group-sm > .input-group-btn > input[type="date"].btn, .input-group-sm input[type="date"], - input[type="time"].input-sm, - .input-group-sm > input[type="time"].form-control, - .input-group-sm > input[type="time"].input-group-addon, - .input-group-sm > .input-group-btn > input[type="time"].btn, - .input-group-sm input[type="time"], - input[type="datetime-local"].input-sm, - .input-group-sm > input[type="datetime-local"].form-control, - .input-group-sm > input[type="datetime-local"].input-group-addon, - .input-group-sm > .input-group-btn > input[type="datetime-local"].btn, - .input-group-sm input[type="datetime-local"], - input[type="month"].input-sm, - .input-group-sm > input[type="month"].form-control, - .input-group-sm > input[type="month"].input-group-addon, - .input-group-sm > .input-group-btn > input[type="month"].btn, - .input-group-sm input[type="month"] { - line-height: 31px; } - input[type="date"].input-lg, .input-group-lg > input[type="date"].form-control, - .input-group-lg > input[type="date"].input-group-addon, - .input-group-lg > .input-group-btn > input[type="date"].btn, .input-group-lg input[type="date"], input[type="time"].input-lg, .input-group-lg > input[type="time"].form-control, - .input-group-lg > input[type="time"].input-group-addon, - .input-group-lg > .input-group-btn > input[type="time"].btn, .input-group-lg input[type="time"], input[type="datetime-local"].input-lg, .input-group-lg > input[type="datetime-local"].form-control, - .input-group-lg > input[type="datetime-local"].input-group-addon, - .input-group-lg > .input-group-btn > input[type="datetime-local"].btn, .input-group-lg input[type="datetime-local"], input[type="month"].input-lg, .input-group-lg > input[type="month"].form-control, - .input-group-lg > input[type="month"].input-group-addon, - .input-group-lg > .input-group-btn > input[type="month"].btn, .input-group-lg input[type="month"] { - line-height: 50px; } } -.form-group { - margin-bottom: 15px; } - -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; } - .radio label, - .checkbox label { - min-height: 25px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; } - -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; } - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; } - -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; } - -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; } - -input[type="radio"][disabled], input[type="radio"].disabled, fieldset[disabled] input[type="radio"], -input[type="checkbox"][disabled], -input[type="checkbox"].disabled, -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; } - -.radio-inline.disabled, fieldset[disabled] .radio-inline, -.checkbox-inline.disabled, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; } - -.radio.disabled label, fieldset[disabled] .radio label, -.checkbox.disabled label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; } - -.form-control-static { - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; - min-height: 40px; } - .form-control-static.input-lg, .input-group-lg > .form-control-static.form-control, - .input-group-lg > .form-control-static.input-group-addon, - .input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control, - .input-group-sm > .form-control-static.input-group-addon, - .input-group-sm > .input-group-btn > .form-control-static.btn { - padding-left: 0; - padding-right: 0; } - -.input-sm, .input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 31px; - padding: 5px 10px; - font-size: 13px; - line-height: 1.5; - border-radius: 3px; } - -select.input-sm, .input-group-sm > select.form-control, -.input-group-sm > select.input-group-addon, -.input-group-sm > .input-group-btn > select.btn { - height: 31px; - line-height: 31px; } - -textarea.input-sm, .input-group-sm > textarea.form-control, -.input-group-sm > textarea.input-group-addon, -.input-group-sm > .input-group-btn > textarea.btn, -select[multiple].input-sm, -.input-group-sm > select[multiple].form-control, -.input-group-sm > select[multiple].input-group-addon, -.input-group-sm > .input-group-btn > select[multiple].btn { - height: auto; } - -.form-group-sm .form-control { - height: 31px; - padding: 5px 10px; - font-size: 13px; - line-height: 1.5; - border-radius: 3px; } -.form-group-sm select.form-control { - height: 31px; - line-height: 31px; } -.form-group-sm textarea.form-control, -.form-group-sm select[multiple].form-control { - height: auto; } -.form-group-sm .form-control-static { - height: 31px; - min-height: 38px; - padding: 6px 10px; - font-size: 13px; - line-height: 1.5; } - -.input-lg, .input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 50px; - padding: 10px 16px; - font-size: 21px; - line-height: 1.3333333; - border-radius: 6px; } - -select.input-lg, .input-group-lg > select.form-control, -.input-group-lg > select.input-group-addon, -.input-group-lg > .input-group-btn > select.btn { - height: 50px; - line-height: 50px; } - -textarea.input-lg, .input-group-lg > textarea.form-control, -.input-group-lg > textarea.input-group-addon, -.input-group-lg > .input-group-btn > textarea.btn, -select[multiple].input-lg, -.input-group-lg > select[multiple].form-control, -.input-group-lg > select[multiple].input-group-addon, -.input-group-lg > .input-group-btn > select[multiple].btn { - height: auto; } - -.form-group-lg .form-control { - height: 50px; - padding: 10px 16px; - font-size: 21px; - line-height: 1.3333333; - border-radius: 6px; } -.form-group-lg select.form-control { - height: 50px; - line-height: 50px; } -.form-group-lg textarea.form-control, -.form-group-lg select[multiple].form-control { - height: auto; } -.form-group-lg .form-control-static { - height: 50px; - min-height: 46px; - padding: 11px 16px; - font-size: 21px; - line-height: 1.3333333; } - -.has-feedback { - position: relative; } - .has-feedback .form-control { - padding-right: 48.75px; } - -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 39px; - height: 39px; - line-height: 39px; - text-align: center; - pointer-events: none; } - -.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback, -.input-group-lg > .input-group-addon + .form-control-feedback, -.input-group-lg > .input-group-btn > .btn + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: 50px; - height: 50px; - line-height: 50px; } - -.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback, -.input-group-sm > .input-group-addon + .form-control-feedback, -.input-group-sm > .input-group-btn > .btn + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: 31px; - height: 31px; - line-height: 31px; } - -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, .has-success.radio label, .has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label { - color: #3c763d; } -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } - .has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; } -.has-success .input-group-addon { - color: #3c763d; - border-color: #3c763d; - background-color: #dff0d8; } -.has-success .form-control-feedback { - color: #3c763d; } - -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, .has-warning.radio label, .has-warning.checkbox label, .has-warning.radio-inline label, .has-warning.checkbox-inline label { - color: #8a6d3b; } -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } - .has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; } -.has-warning .input-group-addon { - color: #8a6d3b; - border-color: #8a6d3b; - background-color: #fcf8e3; } -.has-warning .form-control-feedback { - color: #8a6d3b; } - -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, .has-error.radio label, .has-error.checkbox label, .has-error.radio-inline label, .has-error.checkbox-inline label { - color: #a94442; } -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } - .has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; } -.has-error .input-group-addon { - color: #a94442; - border-color: #a94442; - background-color: #f2dede; } -.has-error .form-control-feedback { - color: #a94442; } - -.has-feedback label ~ .form-control-feedback { - top: 30px; } -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; } - -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #c2c0c2; } - -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; } - .form-inline .form-control-static { - display: inline-block; } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; } - .form-inline .input-group > .form-control { - width: 100%; } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; } - .form-inline .has-feedback .form-control-feedback { - top: 0; } } - -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 7px; } -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 32px; } -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; } - .form-horizontal .form-group:before, .form-horizontal .form-group:after { - content: " "; - display: table; } - .form-horizontal .form-group:after { - clear: both; } -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 7px; } } -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; } -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 11px; - font-size: 21px; } } -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - font-size: 13px; } } - -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 6px 12px; - font-size: 15px; - line-height: 1.7; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; } - .btn:hover, .btn:focus, .btn.focus { - color: #333; - text-decoration: none; } - .btn:active, .btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } - .btn.disabled, .btn[disabled], fieldset[disabled] .btn { - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; } - -a.btn.disabled, fieldset[disabled] a.btn { - pointer-events: none; } - -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; } - .btn-default:focus, .btn-default.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; } - .btn-default:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; } - .btn-default:active, .btn-default.active, .open > .btn-default.dropdown-toggle { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; } - .btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus, .open > .btn-default.dropdown-toggle:hover, .open > .btn-default.dropdown-toggle:focus, .open > .btn-default.dropdown-toggle.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; } - .btn-default:active, .btn-default.active, .open > .btn-default.dropdown-toggle { - background-image: none; } - .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default.focus { - background-color: #fff; - border-color: #ccc; } - .btn-default .badge { - color: #fff; - background-color: #333; } - -.btn-primary { - color: #fff; - background-color: #02B4E5; - border-color: #02a0cc; } - .btn-primary:focus, .btn-primary.focus { - color: #fff; - background-color: #028cb2; - border-color: #013d4d; } - .btn-primary:hover { - color: #fff; - background-color: #028cb2; - border-color: #01708f; } - .btn-primary:active, .btn-primary.active, .open > .btn-primary.dropdown-toggle { - color: #fff; - background-color: #028cb2; - border-color: #01708f; } - .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus, .open > .btn-primary.dropdown-toggle:hover, .open > .btn-primary.dropdown-toggle:focus, .open > .btn-primary.dropdown-toggle.focus { - color: #fff; - background-color: #01708f; - border-color: #013d4d; } - .btn-primary:active, .btn-primary.active, .open > .btn-primary.dropdown-toggle { - background-image: none; } - .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary.focus { - background-color: #02B4E5; - border-color: #02a0cc; } - .btn-primary .badge { - color: #02B4E5; - background-color: #fff; } - -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; } - .btn-success:focus, .btn-success.focus { - color: #fff; - background-color: #449d44; - border-color: #255625; } - .btn-success:hover { - color: #fff; - background-color: #449d44; - border-color: #398439; } - .btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle { - color: #fff; - background-color: #449d44; - border-color: #398439; } - .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus, .open > .btn-success.dropdown-toggle:hover, .open > .btn-success.dropdown-toggle:focus, .open > .btn-success.dropdown-toggle.focus { - color: #fff; - background-color: #398439; - border-color: #255625; } - .btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle { - background-image: none; } - .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success.focus { - background-color: #5cb85c; - border-color: #4cae4c; } - .btn-success .badge { - color: #5cb85c; - background-color: #fff; } - -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; } - .btn-info:focus, .btn-info.focus { - color: #fff; - background-color: #31b0d5; - border-color: #1b6d85; } - .btn-info:hover { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; } - .btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; } - .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus, .open > .btn-info.dropdown-toggle:hover, .open > .btn-info.dropdown-toggle:focus, .open > .btn-info.dropdown-toggle.focus { - color: #fff; - background-color: #269abc; - border-color: #1b6d85; } - .btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle { - background-image: none; } - .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus, fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info.focus { - background-color: #5bc0de; - border-color: #46b8da; } - .btn-info .badge { - color: #5bc0de; - background-color: #fff; } - -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; } - .btn-warning:focus, .btn-warning.focus { - color: #fff; - background-color: #ec971f; - border-color: #985f0d; } - .btn-warning:hover { - color: #fff; - background-color: #ec971f; - border-color: #d58512; } - .btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle { - color: #fff; - background-color: #ec971f; - border-color: #d58512; } - .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus, .open > .btn-warning.dropdown-toggle:hover, .open > .btn-warning.dropdown-toggle:focus, .open > .btn-warning.dropdown-toggle.focus { - color: #fff; - background-color: #d58512; - border-color: #985f0d; } - .btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle { - background-image: none; } - .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus, fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning.focus { - background-color: #f0ad4e; - border-color: #eea236; } - .btn-warning .badge { - color: #f0ad4e; - background-color: #fff; } - -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; } - .btn-danger:focus, .btn-danger.focus { - color: #fff; - background-color: #c9302c; - border-color: #761c19; } - .btn-danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; } - .btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; } - .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus, .open > .btn-danger.dropdown-toggle:hover, .open > .btn-danger.dropdown-toggle:focus, .open > .btn-danger.dropdown-toggle.focus { - color: #fff; - background-color: #ac2925; - border-color: #761c19; } - .btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle { - background-image: none; } - .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus, fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger.focus { - background-color: #d9534f; - border-color: #d43f3a; } - .btn-danger .badge { - color: #d9534f; - background-color: #fff; } - -.btn-link { - color: #02B4E5; - font-weight: normal; - border-radius: 0; } - .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled], fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { - border-color: transparent; } - .btn-link:hover, .btn-link:focus { - color: #017899; - text-decoration: underline; - background-color: transparent; } - .btn-link[disabled]:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:hover, fieldset[disabled] .btn-link:focus { - color: #E3E2E3; - text-decoration: none; } - -.btn-lg, .btn-group-lg > .btn { - padding: 10px 16px; - font-size: 21px; - line-height: 1.3333333; - border-radius: 6px; } - -.btn-sm, .btn-group-sm > .btn { - padding: 5px 10px; - font-size: 13px; - line-height: 1.5; - border-radius: 3px; } - -.btn-xs, .btn-group-xs > .btn { - padding: 1px 5px; - font-size: 13px; - line-height: 1.5; - border-radius: 3px; } - -.btn-block { - display: block; - width: 100%; } - -.btn-block + .btn-block { - margin-top: 5px; } - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; } - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; } - .fade.in { - opacity: 1; } - -.collapse { - display: none; } - .collapse.in { - display: block; } - -tr.collapse.in { - display: table-row; } - -tbody.collapse.in { - display: table-row-group; } - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; } - -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; } - -.dropup, -.dropdown { - position: relative; } - -.dropdown-toggle:focus { - outline: 0; } - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 15px; - text-align: left; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; } - .dropdown-menu.pull-right { - right: 0; - left: auto; } - .dropdown-menu .divider { - height: 1px; - margin: 11.5px 0; - overflow: hidden; - background-color: #e5e5e5; } - .dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.7; - color: #453E46; - white-space: nowrap; } - -.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { - text-decoration: none; - color: #383238; - background-color: #f5f5f5; } - -.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - outline: 0; - background-color: #02B4E5; } - -.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - color: #E3E2E3; } -.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; } - -.open > .dropdown-menu { - display: block; } -.open > a { - outline: 0; } - -.dropdown-menu-right { - left: auto; - right: 0; } - -.dropdown-menu-left { - left: 0; - right: auto; } - -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 13px; - line-height: 1.7; - color: #E3E2E3; - white-space: nowrap; } - -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; } - -.pull-right > .dropdown-menu { - right: 0; - left: auto; } - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; - content: ""; } -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; } - -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; } } -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; } - .btn-group > .btn, - .btn-group-vertical > .btn { - position: relative; - float: left; } - .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, - .btn-group-vertical > .btn:hover, - .btn-group-vertical > .btn:focus, - .btn-group-vertical > .btn:active, - .btn-group-vertical > .btn.active { - z-index: 2; } - -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; } - -.btn-toolbar { - margin-left: -5px; } - .btn-toolbar:before, .btn-toolbar:after { - content: " "; - display: table; } - .btn-toolbar:after { - clear: both; } - .btn-toolbar .btn, - .btn-toolbar .btn-group, - .btn-toolbar .input-group { - float: left; } - .btn-toolbar > .btn, - .btn-toolbar > .btn-group, - .btn-toolbar > .input-group { - margin-left: 5px; } - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; } - -.btn-group > .btn:first-child { - margin-left: 0; } - .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - -.btn-group > .btn-group { - float: left; } - -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; } - -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; } - -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; } - -.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; } - -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } - .btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; } - -.btn .caret { - margin-left: 0; } - -.btn-lg .caret, .btn-group-lg > .btn .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; } - -.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret { - border-width: 0 5px 5px; } - -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; } -.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after { - content: " "; - display: table; } -.btn-group-vertical > .btn-group:after { - clear: both; } -.btn-group-vertical > .btn-group > .btn { - float: none; } -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; } - -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; } -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; } - -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; } - -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; } - .btn-group-justified > .btn, - .btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; } - .btn-group-justified > .btn-group .btn { - width: 100%; } - .btn-group-justified > .btn-group .dropdown-menu { - left: auto; } - -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; } - -.input-group { - position: relative; - display: table; - border-collapse: separate; } - .input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; } - .input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; } - .input-group .form-control:focus { - z-index: 3; } - -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; } - .input-group-addon:not(:first-child):not(:last-child), - .input-group-btn:not(:first-child):not(:last-child), - .input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; } - -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; } - -.input-group-addon { - padding: 6px 12px; - font-size: 15px; - font-weight: normal; - line-height: 1; - color: #837F84; - text-align: center; - background-color: #F4F3F4; - border: 1px solid #ccc; - border-radius: 4px; } - .input-group-addon.input-sm, - .input-group-sm > .input-group-addon, - .input-group-sm > .input-group-btn > .input-group-addon.btn { - padding: 5px 10px; - font-size: 13px; - border-radius: 3px; } - .input-group-addon.input-lg, - .input-group-lg > .input-group-addon, - .input-group-lg > .input-group-btn > .input-group-addon.btn { - padding: 10px 16px; - font-size: 21px; - border-radius: 6px; } - .input-group-addon input[type="radio"], - .input-group-addon input[type="checkbox"] { - margin-top: 0; } - -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - -.input-group-addon:first-child { - border-right: 0; } - -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - -.input-group-addon:last-child { - border-left: 0; } - -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; } - .input-group-btn > .btn { - position: relative; } - .input-group-btn > .btn + .btn { - margin-left: -1px; } - .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { - z-index: 2; } - .input-group-btn:first-child > .btn, - .input-group-btn:first-child > .btn-group { - margin-right: -1px; } - .input-group-btn:last-child > .btn, - .input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; } - -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; } - .nav:before, .nav:after { - content: " "; - display: table; } - .nav:after { - clear: both; } - .nav > li { - position: relative; - display: block; } - .nav > li > a { - position: relative; - display: block; - padding: 10px 15px; } - .nav > li > a:hover, .nav > li > a:focus { - text-decoration: none; - background-color: #F4F3F4; } - .nav > li.disabled > a { - color: #E3E2E3; } - .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { - color: #E3E2E3; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; } - .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { - background-color: #F4F3F4; - border-color: #02B4E5; } - .nav .nav-divider { - height: 1px; - margin: 11.5px 0; - overflow: hidden; - background-color: #e5e5e5; } - .nav > li > a > img { - max-width: none; } - -.nav-tabs { - border-bottom: 1px solid #ddd; } - .nav-tabs > li { - float: left; - margin-bottom: -1px; } - .nav-tabs > li > a { - margin-right: 2px; - line-height: 1.7; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; } - .nav-tabs > li > a:hover { - border-color: #F4F3F4 #F4F3F4 #ddd; } - .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { - color: #837F84; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; - cursor: default; } - -.nav-pills > li { - float: left; } - .nav-pills > li > a { - border-radius: 4px; } - .nav-pills > li + li { - margin-left: 2px; } - .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { - color: #fff; - background-color: #02B4E5; } - -.nav-stacked > li { - float: none; } - .nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; } - -.nav-justified, .nav-tabs.nav-justified { - width: 100%; } - .nav-justified > li, .nav-tabs.nav-justified > li { - float: none; } - .nav-justified > li > a, .nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; } - .nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; } - @media (min-width: 768px) { - .nav-justified > li, .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; } - .nav-justified > li > a, .nav-tabs.nav-justified > li > a { - margin-bottom: 0; } } - -.nav-tabs-justified, .nav-tabs.nav-justified { - border-bottom: 0; } - .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; } - .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus, - .nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; } - @media (min-width: 768px) { - .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; } - .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; } } - -.tab-content > .tab-pane { - display: none; } -.tab-content > .active { - display: block; } - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 25px; - border: 1px solid transparent; } - .navbar:before, .navbar:after { - content: " "; - display: table; } - .navbar:after { - clear: both; } - @media (min-width: 768px) { - .navbar { - border-radius: 4px; } } - -.navbar-header:before, .navbar-header:after { - content: " "; - display: table; } -.navbar-header:after { - clear: both; } -@media (min-width: 768px) { - .navbar-header { - float: left; } } - -.navbar-collapse { - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; } - .navbar-collapse:before, .navbar-collapse:after { - content: " "; - display: table; } - .navbar-collapse:after { - clear: both; } - .navbar-collapse.in { - overflow-y: auto; } - @media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; } - .navbar-collapse.in { - overflow-y: visible; } - .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; } } - -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; } - @media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; } } - -.container > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-header, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; } - @media (min-width: 768px) { - .container > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-header, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; } } - -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; } - @media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; } } - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; } - @media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; } } - -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; } - -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; } - -.navbar-brand { - float: left; - padding: 12.5px 15px; - font-size: 21px; - line-height: 25px; - height: 50px; } - .navbar-brand:hover, .navbar-brand:focus { - text-decoration: none; } - .navbar-brand > img { - display: block; } - @media (min-width: 768px) { - .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { - margin-left: -15px; } } - -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 8px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; } - .navbar-toggle:focus { - outline: 0; } - .navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; } - .navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; } - @media (min-width: 768px) { - .navbar-toggle { - display: none; } } - -.navbar-nav { - margin: 6.25px -15px; } - .navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 25px; } - @media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 25px; } - .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; } } - @media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; } - .navbar-nav > li { - float: left; } - .navbar-nav > li > a { - padding-top: 12.5px; - padding-bottom: 12.5px; } } - -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 5.5px; - margin-bottom: 5.5px; } - @media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; } - .navbar-form .form-control-static { - display: inline-block; } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; } - .navbar-form .input-group > .form-control { - width: 100%; } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; } - .navbar-form .has-feedback .form-control-feedback { - top: 0; } } - @media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; } - .navbar-form .form-group:last-child { - margin-bottom: 0; } } - @media (min-width: 768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; } } - -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - -.navbar-btn { - margin-top: 5.5px; - margin-bottom: 5.5px; } - .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn { - margin-top: 9.5px; - margin-bottom: 9.5px; } - .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn { - margin-top: 14px; - margin-bottom: 14px; } - -.navbar-text { - margin-top: 12.5px; - margin-bottom: 12.5px; } - @media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; } } - -@media (min-width: 768px) { - .navbar-left { - float: left !important; } - - .navbar-right { - float: right !important; - margin-right: -15px; } - .navbar-right ~ .navbar-right { - margin-right: 0; } } -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; } - .navbar-default .navbar-brand { - color: #777; } - .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; } - .navbar-default .navbar-text { - color: #777; } - .navbar-default .navbar-nav > li > a { - color: #777; } - .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; } - .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; } - .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; } - .navbar-default .navbar-toggle { - border-color: #ddd; } - .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { - background-color: #ddd; } - .navbar-default .navbar-toggle .icon-bar { - background-color: #888; } - .navbar-default .navbar-collapse, - .navbar-default .navbar-form { - border-color: #e7e7e7; } - .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { - background-color: #e7e7e7; - color: #555; } - @media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; } } - .navbar-default .navbar-link { - color: #777; } - .navbar-default .navbar-link:hover { - color: #333; } - .navbar-default .btn-link { - color: #777; } - .navbar-default .btn-link:hover, .navbar-default .btn-link:focus { - color: #333; } - .navbar-default .btn-link[disabled]:hover, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:hover, fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; } - -.navbar-inverse { - background-color: transparent; - border-color: transparent; } - .navbar-inverse .navbar-brand { - color: white; } - .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; } - .navbar-inverse .navbar-text { - color: white; } - .navbar-inverse .navbar-nav > li > a { - color: white; } - .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; } - .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: rgba(0, 0, 0, 0); } - .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; } - .navbar-inverse .navbar-toggle { - border-color: #333; } - .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { - background-color: #333; } - .navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; } - .navbar-inverse .navbar-collapse, - .navbar-inverse .navbar-form { - border-color: rgba(0, 0, 0, 0); } - .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { - background-color: rgba(0, 0, 0, 0); - color: #fff; } - @media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: transparent; } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: transparent; } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: white; } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: rgba(0, 0, 0, 0); } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; } } - .navbar-inverse .navbar-link { - color: white; } - .navbar-inverse .navbar-link:hover { - color: #fff; } - .navbar-inverse .btn-link { - color: white; } - .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { - color: #fff; } - .navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:hover, fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; } - -.breadcrumb { - padding: 8px 15px; - margin-bottom: 25px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; } - .breadcrumb > li { - display: inline-block; } - .breadcrumb > li + li:before { - content: "/ "; - padding: 0 5px; - color: #ccc; } - .breadcrumb > .active { - color: #E3E2E3; } - -.pagination { - display: inline-block; - padding-left: 0; - margin: 25px 0; - border-radius: 4px; } - .pagination > li { - display: inline; } - .pagination > li > a, - .pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - line-height: 1.7; - text-decoration: none; - color: #02B4E5; - background-color: #fff; - border: 1px solid #ddd; - margin-left: -1px; } - .pagination > li:first-child > a, - .pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; } - .pagination > li:last-child > a, - .pagination > li:last-child > span { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; } - .pagination > li > a:hover, .pagination > li > a:focus, - .pagination > li > span:hover, - .pagination > li > span:focus { - z-index: 2; - color: #017899; - background-color: #F4F3F4; - border-color: #ddd; } - .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus, - .pagination > .active > span, - .pagination > .active > span:hover, - .pagination > .active > span:focus { - z-index: 3; - color: #fff; - background-color: #02B4E5; - border-color: #02B4E5; - cursor: default; } - .pagination > .disabled > span, - .pagination > .disabled > span:hover, - .pagination > .disabled > span:focus, - .pagination > .disabled > a, - .pagination > .disabled > a:hover, - .pagination > .disabled > a:focus { - color: #E3E2E3; - background-color: #fff; - border-color: #ddd; - cursor: not-allowed; } - -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 21px; - line-height: 1.3333333; } -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 6px; - border-top-left-radius: 6px; } -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 6px; - border-top-right-radius: 6px; } - -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 13px; - line-height: 1.5; } -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - -.pager { - padding-left: 0; - margin: 25px 0; - list-style: none; - text-align: center; } - .pager:before, .pager:after { - content: " "; - display: table; } - .pager:after { - clear: both; } - .pager li { - display: inline; } - .pager li > a, - .pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; } - .pager li > a:hover, - .pager li > a:focus { - text-decoration: none; - background-color: #F4F3F4; } - .pager .next > a, - .pager .next > span { - float: right; } - .pager .previous > a, - .pager .previous > span { - float: left; } - .pager .disabled > a, - .pager .disabled > a:hover, - .pager .disabled > a:focus, - .pager .disabled > span { - color: #E3E2E3; - background-color: #fff; - cursor: not-allowed; } - -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; } - .label:empty { - display: none; } - .btn .label { - position: relative; - top: -1px; } - -a.label:hover, a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; } - -.label-default { - background-color: #E3E2E3; } - .label-default[href]:hover, .label-default[href]:focus { - background-color: #cac8ca; } - -.label-primary { - background-color: #02B4E5; } - .label-primary[href]:hover, .label-primary[href]:focus { - background-color: #028cb2; } - -.label-success { - background-color: #5cb85c; } - .label-success[href]:hover, .label-success[href]:focus { - background-color: #449d44; } - -.label-info { - background-color: #5bc0de; } - .label-info[href]:hover, .label-info[href]:focus { - background-color: #31b0d5; } - -.label-warning { - background-color: #f0ad4e; } - .label-warning[href]:hover, .label-warning[href]:focus { - background-color: #ec971f; } - -.label-danger { - background-color: #d9534f; } - .label-danger[href]:hover, .label-danger[href]:focus { - background-color: #c9302c; } - -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 13px; - font-weight: bold; - color: #fff; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: #E3E2E3; - border-radius: 10px; } - .badge:empty { - display: none; } - .btn .badge { - position: relative; - top: -1px; } - .btn-xs .badge, .btn-group-xs > .btn .badge, .btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; } - .list-group-item.active > .badge, .nav-pills > .active > a > .badge { - color: #02B4E5; - background-color: #fff; } - .list-group-item > .badge { - float: right; } - .list-group-item > .badge + .badge { - margin-right: 5px; } - .nav-pills > li > a > .badge { - margin-left: 3px; } - -a.badge:hover, a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; } - -.jumbotron { - padding-top: 80px; - padding-bottom: 80px; - margin-bottom: 80px; - color: #fff; - background-color: #F4F3F4; } - .jumbotron h1, - .jumbotron .h1 { - color: #fff; } - .jumbotron p { - margin-bottom: 40px; - font-size: 23px; - font-weight: 200; } - .jumbotron > hr { - border-top-color: #dcd8dc; } - .container .jumbotron, .container-fluid .jumbotron { - border-radius: 6px; - padding-left: 15px; - padding-right: 15px; } - .jumbotron .container { - max-width: 100%; } - @media screen and (min-width: 768px) { - .jumbotron { - padding-top: 128px; - padding-bottom: 128px; } - .container .jumbotron, .container-fluid .jumbotron { - padding-left: 160px; - padding-right: 160px; } - .jumbotron h1, - .jumbotron .h1 { - font-size: 61px; } } - -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 25px; - line-height: 1.7; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; } - .thumbnail > img, - .thumbnail a > img { - display: block; - max-width: 100%; - height: auto; - margin-left: auto; - margin-right: auto; } - .thumbnail .caption { - padding: 9px; - color: #837F84; } - -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #02B4E5; } - -.alert { - padding: 15px; - margin-bottom: 25px; - border: 1px solid transparent; - border-radius: 4px; } - .alert h4 { - margin-top: 0; - color: inherit; } - .alert .alert-link { - font-weight: bold; } - .alert > p, - .alert > ul { - margin-bottom: 0; } - .alert > p + p { - margin-top: 5px; } - -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; } - .alert-dismissable .close, - .alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; } - -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #3c763d; } - .alert-success hr { - border-top-color: #c9e2b3; } - .alert-success .alert-link { - color: #2b542c; } - -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #31708f; } - .alert-info hr { - border-top-color: #a6e1ec; } - .alert-info .alert-link { - color: #245269; } - -.alert-warning { - background-color: #fcf8e3; - border-color: #faebcc; - color: #8a6d3b; } - .alert-warning hr { - border-top-color: #f7e1b5; } - .alert-warning .alert-link { - color: #66512c; } - -.alert-danger { - background-color: #f2dede; - border-color: #ebccd1; - color: #a94442; } - .alert-danger hr { - border-top-color: #e4b9c0; } - .alert-danger .alert-link { - color: #843534; } - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; } - to { - background-position: 0 0; } } -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; } - to { - background-position: 0 0; } } -.progress { - overflow: hidden; - height: 25px; - margin-bottom: 25px; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); } - -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 13px; - line-height: 25px; - color: #fff; - text-align: center; - background-color: #02B4E5; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; } - -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; } - -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; } - -.progress-bar-success { - background-color: #5cb85c; } - .progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } - -.progress-bar-info { - background-color: #5bc0de; } - .progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } - -.progress-bar-warning { - background-color: #f0ad4e; } - .progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } - -.progress-bar-danger { - background-color: #d9534f; } - .progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } - -.media { - margin-top: 15px; } - .media:first-child { - margin-top: 0; } - -.media, -.media-body { - zoom: 1; - overflow: hidden; } - -.media-body { - width: 10000px; } - -.media-object { - display: block; } - .media-object.img-thumbnail { - max-width: none; } - -.media-right, -.media > .pull-right { - padding-left: 10px; } - -.media-left, -.media > .pull-left { - padding-right: 10px; } - -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; } - -.media-middle { - vertical-align: middle; } - -.media-bottom { - vertical-align: bottom; } - -.media-heading { - margin-top: 0; - margin-bottom: 5px; } - -.media-list { - padding-left: 0; - list-style: none; } - -.list-group { - margin-bottom: 20px; - padding-left: 0; } - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; } - .list-group-item:first-child { - border-top-right-radius: 4px; - border-top-left-radius: 4px; } - .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; } - -a.list-group-item, -button.list-group-item { - color: #555; } - a.list-group-item .list-group-item-heading, - button.list-group-item .list-group-item-heading { - color: #333; } - a.list-group-item:hover, a.list-group-item:focus, - button.list-group-item:hover, - button.list-group-item:focus { - text-decoration: none; - color: #555; - background-color: #f5f5f5; } - -button.list-group-item { - width: 100%; - text-align: left; } - -.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { - background-color: #F4F3F4; - color: #E3E2E3; - cursor: not-allowed; } - .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading { - color: inherit; } - .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { - color: #E3E2E3; } -.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #02B4E5; - border-color: #02B4E5; } - .list-group-item.active .list-group-item-heading, - .list-group-item.active .list-group-item-heading > small, - .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading, - .list-group-item.active:hover .list-group-item-heading > small, - .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading, - .list-group-item.active:focus .list-group-item-heading > small, - .list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; } - .list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text { - color: #b5eefe; } - -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; } - -a.list-group-item-success, -button.list-group-item-success { - color: #3c763d; } - a.list-group-item-success .list-group-item-heading, - button.list-group-item-success .list-group-item-heading { - color: inherit; } - a.list-group-item-success:hover, a.list-group-item-success:focus, - button.list-group-item-success:hover, - button.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; } - a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus, - button.list-group-item-success.active, - button.list-group-item-success.active:hover, - button.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; } - -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; } - -a.list-group-item-info, -button.list-group-item-info { - color: #31708f; } - a.list-group-item-info .list-group-item-heading, - button.list-group-item-info .list-group-item-heading { - color: inherit; } - a.list-group-item-info:hover, a.list-group-item-info:focus, - button.list-group-item-info:hover, - button.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; } - a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus, - button.list-group-item-info.active, - button.list-group-item-info.active:hover, - button.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; } - -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; } - -a.list-group-item-warning, -button.list-group-item-warning { - color: #8a6d3b; } - a.list-group-item-warning .list-group-item-heading, - button.list-group-item-warning .list-group-item-heading { - color: inherit; } - a.list-group-item-warning:hover, a.list-group-item-warning:focus, - button.list-group-item-warning:hover, - button.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; } - a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus, - button.list-group-item-warning.active, - button.list-group-item-warning.active:hover, - button.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; } - -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; } - -a.list-group-item-danger, -button.list-group-item-danger { - color: #a94442; } - a.list-group-item-danger .list-group-item-heading, - button.list-group-item-danger .list-group-item-heading { - color: inherit; } - a.list-group-item-danger:hover, a.list-group-item-danger:focus, - button.list-group-item-danger:hover, - button.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; } - a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus, - button.list-group-item-danger.active, - button.list-group-item-danger.active:hover, - button.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; } - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; } - -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; } - -.panel { - margin-bottom: 25px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); } - -.panel-body { - padding: 15px; } - .panel-body:before, .panel-body:after { - content: " "; - display: table; } - .panel-body:after { - clear: both; } - -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; } - .panel-heading > .dropdown .dropdown-toggle { - color: inherit; } - -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 17px; - color: inherit; } - .panel-title > a, - .panel-title > small, - .panel-title > .small, - .panel-title > small > a, - .panel-title > .small > a { - color: inherit; } - -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; } - -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; } - .panel > .list-group .list-group-item, - .panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; } - .panel > .list-group:first-child .list-group-item:first-child, - .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: 3px; - border-top-left-radius: 3px; } - .panel > .list-group:last-child .list-group-item:last-child, - .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; } -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; } - -.list-group + .panel-footer { - border-top-width: 0; } - -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; } - .panel > .table caption, - .panel > .table-responsive > .table caption, - .panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; } -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 3px; } - .panel > .table:first-child > thead:first-child > tr:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; } - .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; } - .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; } -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; } - .panel > .table:last-child > tbody:last-child > tr:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; } - .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; } - .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; } -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; } -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; } -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; } - .panel > .table-bordered > thead > tr > th:first-child, - .panel > .table-bordered > thead > tr > td:first-child, - .panel > .table-bordered > tbody > tr > th:first-child, - .panel > .table-bordered > tbody > tr > td:first-child, - .panel > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-bordered > tfoot > tr > td:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; } - .panel > .table-bordered > thead > tr > th:last-child, - .panel > .table-bordered > thead > tr > td:last-child, - .panel > .table-bordered > tbody > tr > th:last-child, - .panel > .table-bordered > tbody > tr > td:last-child, - .panel > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-bordered > tfoot > tr > td:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; } - .panel > .table-bordered > thead > tr:first-child > td, - .panel > .table-bordered > thead > tr:first-child > th, - .panel > .table-bordered > tbody > tr:first-child > td, - .panel > .table-bordered > tbody > tr:first-child > th, - .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, - .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, - .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, - .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; } - .panel > .table-bordered > tbody > tr:last-child > td, - .panel > .table-bordered > tbody > tr:last-child > th, - .panel > .table-bordered > tfoot > tr:last-child > td, - .panel > .table-bordered > tfoot > tr:last-child > th, - .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, - .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, - .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, - .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; } -.panel > .table-responsive { - border: 0; - margin-bottom: 0; } - -.panel-group { - margin-bottom: 25px; } - .panel-group .panel { - margin-bottom: 0; - border-radius: 4px; } - .panel-group .panel + .panel { - margin-top: 5px; } - .panel-group .panel-heading { - border-bottom: 0; } - .panel-group .panel-heading + .panel-collapse > .panel-body, - .panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; } - .panel-group .panel-footer { - border-top: 0; } - .panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; } - -.panel-default { - border-color: #ddd; } - .panel-default > .panel-heading { - color: #453E46; - background-color: #f5f5f5; - border-color: #ddd; } - .panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; } - .panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #453E46; } - .panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; } - -.panel-primary { - border-color: #02B4E5; } - .panel-primary > .panel-heading { - color: #fff; - background-color: #02B4E5; - border-color: #02B4E5; } - .panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #02B4E5; } - .panel-primary > .panel-heading .badge { - color: #02B4E5; - background-color: #fff; } - .panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #02B4E5; } - -.panel-success { - border-color: #d6e9c6; } - .panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; } - .panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; } - .panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; } - .panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; } - -.panel-info { - border-color: #bce8f1; } - .panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; } - .panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; } - .panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; } - .panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; } - -.panel-warning { - border-color: #faebcc; } - .panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; } - .panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; } - .panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; } - .panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; } - -.panel-danger { - border-color: #ebccd1; } - .panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; } - .panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; } - .panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; } - .panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; } - -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; } - .embed-responsive .embed-responsive-item, - .embed-responsive iframe, - .embed-responsive embed, - .embed-responsive object, - .embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; } - -.embed-responsive-16by9 { - padding-bottom: 56.25%; } - -.embed-responsive-4by3 { - padding-bottom: 75%; } - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } - .well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); } - -.well-lg { - padding: 24px; - border-radius: 6px; } - -.well-sm { - padding: 9px; - border-radius: 3px; } - -.close { - float: right; - font-size: 22.5px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: 0.2; - filter: alpha(opacity=20); } - .close:hover, .close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); } - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; } - -.modal-open { - overflow: hidden; } - -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; } - .modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; } - .modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); } - -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; } - -.modal-dialog { - position: relative; - width: auto; - margin: 10px; } - -.modal-content { - position: relative; - background-color: #fff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; - outline: 0; } - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; } - .modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); } - .modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); } - -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; } - .modal-header:before, .modal-header:after { - content: " "; - display: table; } - .modal-header:after { - clear: both; } - -.modal-header .close { - margin-top: -2px; } - -.modal-title { - margin: 0; - line-height: 1.7; } - -.modal-body { - position: relative; - padding: 15px; } - -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; } - .modal-footer:before, .modal-footer:after { - content: " "; - display: table; } - .modal-footer:after { - clear: both; } - .modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; } - .modal-footer .btn-group .btn + .btn { - margin-left: -1px; } - .modal-footer .btn-block + .btn-block { - margin-left: 0; } - -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; } - -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; } - - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); } - - .modal-sm { - width: 300px; } } -@media (min-width: 992px) { - .modal-lg { - width: 900px; } } -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Lato", sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.7; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 13px; - opacity: 0; - filter: alpha(opacity=0); } - .tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); } - .tooltip.top { - margin-top: -3px; - padding: 5px 0; } - .tooltip.right { - margin-left: 3px; - padding: 0 5px; } - .tooltip.bottom { - margin-top: 3px; - padding: 5px 0; } - .tooltip.left { - margin-left: -3px; - padding: 0 5px; } - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 4px; } - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; } - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; } -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; } -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; } -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; } -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; } -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; } -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; } -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; } - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Lato", sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.7; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 15px; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); } - .popover.top { - margin-top: -10px; } - .popover.right { - margin-left: 10px; } - .popover.bottom { - margin-top: 10px; } - .popover.left { - margin-left: -10px; } - -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 15px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; } - -.popover-content { - padding: 9px 14px; } - -.popover > .arrow, .popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; } - -.popover > .arrow { - border-width: 11px; } - -.popover > .arrow:after { - border-width: 10px; - content: ""; } - -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - bottom: -11px; } - .popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #fff; } -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); } - .popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #fff; } -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - top: -11px; } - .popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #fff; } -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); } - .popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #fff; - bottom: -10px; } - -.carousel { - position: relative; } - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; } - .carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; } - .carousel-inner > .item > img, - .carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; - line-height: 1; } - @media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -moz-transition: -moz-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - -moz-perspective: 1000px; - perspective: 1000px; } - .carousel-inner > .item.next, .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; } - .carousel-inner > .item.prev, .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; } - .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; } } - .carousel-inner > .active, - .carousel-inner > .next, - .carousel-inner > .prev { - display: block; } - .carousel-inner > .active { - left: 0; } - .carousel-inner > .next, - .carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; } - .carousel-inner > .next { - left: 100%; } - .carousel-inner > .prev { - left: -100%; } - .carousel-inner > .next.left, - .carousel-inner > .prev.right { - left: 0; } - .carousel-inner > .active.left { - left: -100%; } - .carousel-inner > .active.right { - left: 100%; } - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - background-color: rgba(0, 0, 0, 0); } - .carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); } - .carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); } - .carousel-control:hover, .carousel-control:focus { - outline: 0; - color: #fff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); } - .carousel-control .icon-prev, - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; } - .carousel-control .icon-prev, - .carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; } - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; } - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; } - .carousel-control .icon-prev:before { - content: '\2039'; } - .carousel-control .icon-next:before { - content: '\203a'; } - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; } - .carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #fff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); } - .carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #fff; } - -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } - .carousel-caption .btn { - text-shadow: none; } - -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -10px; } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -10px; } - - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; } - - .carousel-indicators { - bottom: 20px; } } -.clearfix:before, .clearfix:after { - content: " "; - display: table; } -.clearfix:after { - clear: both; } - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; } - -.pull-right { - float: right !important; } - -.pull-left { - float: left !important; } - -.hide { - display: none !important; } - -.show { - display: block !important; } - -.invisible { - visibility: hidden; } - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; } - -.hidden { - display: none !important; } - -.affix { - position: fixed; } - -@-ms-viewport { - width: device-width; } -.visible-xs { - display: none !important; } - -.visible-sm { - display: none !important; } - -.visible-md { - display: none !important; } - -.visible-lg { - display: none !important; } - -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; } - -@media (max-width: 767px) { - .visible-xs { - display: block !important; } - - table.visible-xs { - display: table !important; } - - tr.visible-xs { - display: table-row !important; } - - th.visible-xs, - td.visible-xs { - display: table-cell !important; } } -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; } } - -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; } } - -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; } } - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; } - - table.visible-sm { - display: table !important; } - - tr.visible-sm { - display: table-row !important; } - - th.visible-sm, - td.visible-sm { - display: table-cell !important; } } -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; } } - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; } } - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; } } - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; } - - table.visible-md { - display: table !important; } - - tr.visible-md { - display: table-row !important; } - - th.visible-md, - td.visible-md { - display: table-cell !important; } } -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; } } - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; } } - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; } } - -@media (min-width: 1200px) { - .visible-lg { - display: block !important; } - - table.visible-lg { - display: table !important; } - - tr.visible-lg { - display: table-row !important; } - - th.visible-lg, - td.visible-lg { - display: table-cell !important; } } -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; } } - -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; } } - -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; } } - -@media (max-width: 767px) { - .hidden-xs { - display: none !important; } } -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; } } -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; } } -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; } } -.visible-print { - display: none !important; } - -@media print { - .visible-print { - display: block !important; } - - table.visible-print { - display: table !important; } - - tr.visible-print { - display: table-row !important; } - - th.visible-print, - td.visible-print { - display: table-cell !important; } } -.visible-print-block { - display: none !important; } - @media print { - .visible-print-block { - display: block !important; } } - -.visible-print-inline { - display: none !important; } - @media print { - .visible-print-inline { - display: inline !important; } } - -.visible-print-inline-block { - display: none !important; } - @media print { - .visible-print-inline-block { - display: inline-block !important; } } - -@media print { - .hidden-print { - display: none !important; } } -body { - font-weight: 400; } - -::-moz-selection { - color: #fff; } - -::selection { - color: #fff; } - -.btn { - padding: 7.2px 42px; - font-size: 15px; - line-height: 1.7; - border-radius: 200px; } - -.navbar-brand { - font-size: 21px; } - -.navbar-text { - padding-top: 10px; } - -.jumbotron { - padding-top: 136px; - padding-bottom: 80px; - margin-bottom: 0; - background-attachment: fixed; - background: url("../img/jumbotron_pattern.png") fixed; } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .jumbotron { - /* on retina, use image that's scaled by 2 */ - background-image: url("../img/jumbotron_pattern2x.png"); - background-size: 56px 31px; } } - .jumbotron h1 { - margin-bottom: 45px; } - .jumbotron .btn-outline-inverse { - border: 2px solid #fff; - color: #fff; } - .jumbotron .btn-outline-inverse:hover, .jumbotron .btn-outline-inverse:focus { - background: #fff; } - @media screen and (min-width: 768px) { - .jumbotron { - padding-top: 160px; - padding-bottom: 92px; } } - -pre { - padding: 0; - font-size: 13px; - background: rgba(244, 243, 244, 0.6); - border-radius: 2px; - margin-top: 20px; } - @media screen and (min-width: 992px) { - pre { - margin-top: 0; } } - pre code { - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; } - pre .hljs { - padding: 25px; - background: none; } - -.tooltip { - font-size: 12px; } - -.tooltip-inner { - padding: 6px 15px; } - -table th, table td { - padding: 6px 13px; - border: 1px solid #ddd; } - -#wrapper { - padding-left: 0; - -webkit-transition: all 0.5s ease; - -o-transition: all 0.5s ease; - transition: all 0.5s ease; } - #wrapper.toggled { - padding-left: 250px; } - -#sidebar-wrapper { - z-index: 1000; - position: fixed; - left: 250px; - width: 0; - height: 100%; - margin-left: -250px; - overflow-y: auto; - background: #000; - -webkit-transition: all 0.5s ease; - -o-transition: all 0.5s ease; - transition: all 0.5s ease; } - -#wrapper.toggled #sidebar-wrapper { - width: 250px; } - -#page-content-wrapper { - width: 100%; - position: absolute; } - #page-content-wrapper .nav { - background: #fff; - max-height: 76px; } - #page-content-wrapper .nav a { - padding: 26px 15px; - display: block; } - #page-content-wrapper .nav a:hover { - text-decoration: none; } - #page-content-wrapper .nav a i { - font-size: 18px; } - #page-content-wrapper .nav ul { - padding: 0; - margin: 0; } - #page-content-wrapper .nav ul li { - list-style: none; - display: inline-block; } - #page-content-wrapper .nav ul li span { - margin-left: 10px; - font-size: 14px; } - #page-content-wrapper section { - background: #fff; - margin: 30px; - border-radius: 2px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - -ms-border-radius: 2px; - -o-border-radius: 2px; - padding: 30px; } - #page-content-wrapper section a:hover, #page-content-wrapper section a:focus { - text-decoration: none; } - #page-content-wrapper section a:focus { - outline: 0; } - #page-content-wrapper section pre { - padding: 0; - font-size: 13px; - background: rgba(244, 243, 244, 0.6); - border-radius: 2px; - margin-top: 20px; } - @media screen and (min-width: 992px) { - #page-content-wrapper section pre { - margin-top: 0; } } - #page-content-wrapper section pre code { - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; } - #page-content-wrapper section pre .hljs { - padding: 25px; - background: none; } - #page-content-wrapper .header-link { - float: left; - font-size: 20px; - line-height: 1; - margin-left: -20px; - margin-top: 4px; - opacity: 0; - padding-right: 0; - transition: opacity 0.2s ease, color 0.2s ease; } - #page-content-wrapper h1:hover .header-link, #page-content-wrapper h2:hover .header-link, #page-content-wrapper h3:hover .header-link, #page-content-wrapper h4:hover .header-link, #page-content-wrapper h5:hover .header-link, #page-content-wrapper h6:hover .header-link { - opacity: 1; } - -#wrapper.toggled #page-content-wrapper { - position: absolute; - margin-right: -250px; } - -.sidebar-nav { - position: absolute; - top: 0; - width: 250px; - margin: 0; - padding: 0; - list-style: none; } - .sidebar-nav > li { - line-height: 40px; - margin-bottom: 8px; } - .sidebar-nav > li > a { - padding: 0 24px; - display: block; - text-decoration: none; - color: rgba(255, 255, 255, 0.7); } - .sidebar-nav > li > a.active { - padding-left: 21px; - color: #fff; } - .sidebar-nav > li > a.active i { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); } - .sidebar-nav > li > a:hover { - text-decoration: none; - color: #fff; - background: rgba(255, 255, 255, 0.2); } - .sidebar-nav > li > a:active, .sidebar-nav > li > a:focus { - text-decoration: none; } - .sidebar-nav > li > a > span { - float: right; } - .sidebar-nav > li > a > span > i { - -webkit-transition: 0.4s; - -o-transition: 0.4s; - transition: 0.4s; } - .sidebar-nav > li ul { - padding: 0; - margin: 0; } - .sidebar-nav > li ul li { - list-style: none; } - .sidebar-nav > li ul li a { - color: rgba(255, 255, 255, 0.7); - display: block; - padding: 0 24px 0 40px; } - .sidebar-nav > li ul li a:hover, .sidebar-nav > li ul li a:active { - text-decoration: none; - color: #fff; } - .sidebar-nav .active { - display: block; } - .sidebar-nav > .sidebar-brand { - font-size: 17px; - margin-bottom: 16px; } - .sidebar-nav > .sidebar-brand a { - padding: 20px 24px; - color: #fff; } - .sidebar-nav > .sidebar-brand a .brand-wrapper { - position: relative; - width: 36px; - height: 36px; - background: url("../img/sidebar_brand.png") no-repeat; } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .sidebar-nav > .sidebar-brand a .brand-wrapper { - /* on retina, use image that's scaled by 2 */ - background-image: url("../img/sidebar_brand2x.png"); - background-size: 36px 36px; } } - .sidebar-nav > .sidebar-brand a .brand-wrapper span { - position: absolute; - top: 0; - left: 42px; - z-index: 30; - white-space: nowrap; } - -@media (min-width: 768px) { - #wrapper { - padding-left: 250px; } - #wrapper.toggled { - padding-left: 0; } - - #sidebar-wrapper { - width: 250px; } - - #wrapper.toggled #sidebar-wrapper { - width: 0; } - - #page-content-wrapper { - position: relative; } - - #wrapper.toggled #page-content-wrapper { - position: relative; - margin-right: 0; } } -#site-header .navbar-wrapper { - position: absolute; - margin-top: 40px; - top: 0; - right: 0; - left: 0; - z-index: 20; } - #site-header .navbar-wrapper a { - color: #fff; } - #site-header .navbar-wrapper .brand { - font-size: 20px; } - #site-header .navbar-wrapper .brand .icon-wrapper { - position: relative; - width: 44px; - height: 44px; - background: url("../img/navbar_brand.png") no-repeat; } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - #site-header .navbar-wrapper .brand .icon-wrapper { - /* on retina, use image that's scaled by 2 */ - background-image: url("../img/navbar_brand2x.png"); - background-size: 44px 44px; } } - #site-header .navbar-wrapper .brand .icon-wrapper span { - position: absolute; - white-space: nowrap; - top: 5px; - left: 55px; - z-index: 30; } - #site-header .navbar-wrapper nav { - padding-top: 8px; } - #site-header .navbar-wrapper nav ul { - padding: 0; - margin: 0; } - #site-header .navbar-wrapper nav ul li { - list-style: none; - display: inline-block; } - #site-header .navbar-wrapper nav ul li a i { - font-size: 21px; - margin-right: 6px; } - #site-header .navbar-wrapper nav ul li a .fa:before { - vertical-align: -8%; - display: inline-block; } - #site-header .navbar-wrapper nav ul li a .fa-file-text { - font-size: 17px; } - #site-header .navbar-wrapper nav ul li a:hover, #site-header .navbar-wrapper nav ul li a:focus, #site-header .navbar-wrapper nav ul li a.focus { - opacity: 0.5; - text-decoration: none; } - #site-header .navbar-wrapper nav ul li:first-child { - margin-right: 50px; } - @media screen and (max-width: 767px) { - #site-header .navbar-wrapper nav ul li:first-child { - margin-right: 10px; } } - -.horizontalNav { - border: 1px solid #ccc; - border-width: 1px 0; - list-style: none; - margin: 0; - padding: 0; - text-align: center; } - .horizontalNav li { - display: inline; } - .horizontalNav li a { - display: inline-block; - padding: 10px; } - .horizontalNav li a.active { - font-weight: bold; } - -.technologies { - padding-top: 28.5714285714px; - padding-bottom: 40px; } - .technologies .first-icon-wrapper, - .technologies .second-icon-wrapper, - .technologies .third-icon-wrapper { - float: left; - margin-top: 0; - width: 40px; - height: 40px; - opacity: 0.3; } - @media screen and (min-width: 992px) { - .technologies .first-icon-wrapper, - .technologies .second-icon-wrapper, - .technologies .third-icon-wrapper { - margin-top: 26px; } } - .technologies .first-icon-wrapper { - background: url("../img/first_icon.png") no-repeat; } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .technologies .first-icon-wrapper { - /* on retina, use image that's scaled by 2 */ - background-image: url("../img/first_icon2x.png"); - background-size: 40px 40px; } } - .technologies .second-icon-wrapper { - background: url("../img/second_icon.png") no-repeat; } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .technologies .second-icon-wrapper { - /* on retina, use image that's scaled by 2 */ - background-image: url("../img/second_icon2x.png"); - background-size: 40px 40px; } } - .technologies .third-icon-wrapper { - background: url("../img/third_icon.png"); } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .technologies .third-icon-wrapper { - /* on retina, use image that's scaled by 2 */ - background-image: url("../img/third_icon2x.png"); - background-size: 40px 40px; } } - .technologies h3, - .technologies p { - padding-left: 60px; } - .technologies h3 { - font-size: 16px; - margin-bottom: 8px; - color: rgba(255, 255, 255, 0.9); } - .technologies p { - font-size: 14px; - color: rgba(255, 255, 255, 0.4); } - -.use { - padding: 30px 0 61.5384615385px 0; } - -#site-footer { - padding: 40px 0; } - #site-footer p { - font-size: 14px; - margin: 0; - color: rgba(255, 255, 255, 0.3); } - #site-footer p a { - position: relative; - color: rgba(255, 255, 255, 0.6); } - #site-footer p a span { - font-size: 20px; - position: absolute; - top: -1px; - left: -26px; - z-index: 35; } diff --git a/highlight/CHANGES.md b/highlight/CHANGES.md deleted file mode 100644 index 878e18fa7..000000000 --- a/highlight/CHANGES.md +++ /dev/null @@ -1,1527 +0,0 @@ -## Version 9.8.0 "New York" - -This version is the second one that deserved a name. Because I'm in New York, -and the release isn't missing the deadline only because it's still Tuesday on -West Coast. - -New languages: - -- *Clean* by [Camil Staps][] -- *Flix* by [Magnus Madsen][] - -Improvements: - -- [Kenton Hamaluik][] did a comprehensive update for *Haxe*. -- New commands for *PowerShell* from [Nicolas Le Gall][]. -- [Jan T. Sott][] updated *NSIS*. -- *Java* and *Swift* support unicode characters in identifiers thanks to - [Alexander Lichter][]. - -[Camil Staps]: https://github.com/camilstaps -[Magnus Madsen]: https://github.com/magnus-madsen -[Kenton Hamaluik]: https://github.com/FuzzyWuzzie -[Nicolas Le Gall]: https://github.com/darkitty -[Jan T. Sott]: https://github.com/idleberg -[Alexander Lichter]: https://github.com/manniL - - -## Version 9.7.0 - -A comprehensive bugfix release. This is one of the best things about -highlight.js: even boring things keep getting better (even if slow). - -- VHDL updated with PSL keywords and uses more consistent styling. -- Nested C-style comments no longer break highlighting in many languages. -- JavaScript updated with `=>` functions, highlighted object attributes and - parsing within template string substitution blocks (`${...}`). -- Fixed another corner case with self-closing `` in JSX. -- Added `HEALTHCHECK` directive in Docker. -- Delphi updated with new Free Pascal keywords. -- Fixed digit separator parsing in C++. -- C# updated with new keywords and fixed to allow multiple identifiers within - generics `<...>`. -- Fixed another slow regex in Less. - - -## Version 9.6.0 - -New languages: - -- *ABNF* and *EBNF* by [Alex McKibben][] -- *Awk* by [Matthew Daly][] -- *SubUnit* by [Sergey Bronnikov][] - -New styles: - -- *Atom One* in both Dark and Light variants by [Daniel Gamage][] - -Plus, a few smaller updates for *Lasso*, *Elixir*, *C++* and *SQL*. - -[Alex McKibben]: https://github.com/mckibbenta -[Daniel Gamage]: https://github.com/danielgamage -[Matthew Daly]: https://github.com/matthewbdaly -[Sergey Bronnikov]: https://github.com/ligurio - - -## Version 9.5.0 - -New languages: - -- *Excel* by [Victor Zhou][] -- *Linden Scripting Language* by [Builder's Brewery][] -- *TAP* (Test Anything Protocol) by [Sergey Bronnikov][] -- *Pony* by [Joe Eli McIlvain][] -- *Coq* by [Stephan Boyer][] -- *dsconfig* and *LDIF* by [Jacob Childress][] - -New styles: - -- *Ocean Dark* by [Gavin Siu][] - -Notable changes: - -- [Minh Nguyễn][] added more built-ins to Objective C. -- [Jeremy Hull][] fixed corner cases in C++ preprocessor directives and Diff - comments. -- [Victor Zhou][] added support for digit separators in C++ numbers. - -[Gavin Siu]: https://github.com/gavsiu -[Builder's Brewery]: https://github.com/buildersbrewery -[Victor Zhou]: https://github.com/OiCMudkips -[Sergey Bronnikov]: https://github.com/ligurio -[Joe Eli McIlvain]: https://github.com/jemc -[Stephan Boyer]: https://github.com/boyers -[Jacob Childress]: https://github.com/braveulysses -[Minh Nguyễn]: https://github.com/1ec5 -[Jeremy Hull]: https://github.com/sourrust - - -## Version 9.4.0 - -New languages: - -- *PureBASIC* by [Tristano Ajmone][] -- *BNF* by [Oleg Efimov][] -- *Ada* by [Lars Schulna][] - -New styles: - -- *PureBASIC* by [Tristano Ajmone][] - -Improvements to existing languages and styles: - -- We now highlight function declarations in Go. -- [Taisuke Fujimoto][] contributed very convoluted rules for raw and - interpolated strings in C#. -- [Boone Severson][] updated Verilog to comply with IEEE 1800-2012 - SystemVerilog. -- [Victor Zhou][] improved rules for comments and strings in PowerShell files. -- [Janis Voigtländer][] updated the definition of Elm to version 0.17 of the - languages. Elm is now featured on the front page of . -- Special variable `$this` is highlighted as a keyword in PHP. -- `usize` and `isize` are now highlighted in Rust. -- Fixed labels and directives in x86 assembler. - -[Tristano Ajmone]: https://github.com/tajmone -[Taisuke Fujimoto]: https://github.com/temp-impl -[Oleg Efimov]: https://github.com/Sannis -[Boone Severson]: https://github.com/BooneJS -[Victor Zhou]: https://github.com/OiCMudkips -[Lars Schulna]: https://github.com/captain-hanuta -[Janis Voigtländer]: https://github.com/jvoigtlaender - - -## Version 9.3.0 - -New languages: - -- *Tagger Script* by [Philipp Wolfer][] -- *MoonScript* by [Billy Quith][] - -New styles: - -- *xt256* by [Herbert Shin][] - -Improvements to existing languages and styles: - -- More robust handling of unquoted HTML tag attributes -- Relevance tuning for QML which was unnecessary eager at seizing other - languages' code -- Improve GAMS language parsing -- Fixed a bunch of bugs around selectors in Less -- Kotlin's got a new definition for annotations, updated keywords and other - minor improvements -- Added `move` to Rust keywords -- Markdown now recognizes \`\`\`-fenced code blocks -- Improved detection of function declarations in C++ and C# - -[Philipp Wolfer]: https://github.com/phw -[Billy Quith]: https://github.com/billyquith -[Herbert Shin]: https://github.com/initbar - - -## Version 9.2.0 - -New languages: - -- *QML* by [John Foster][] -- *HTMLBars* by [Michael Johnston][] -- *CSP* by [Taras][] -- *Maxima* by [Robert Dodier][] - -New styles: - -- *Gruvbox* by [Qeole][] -- *Dracula* by [Denis Ciccale][] - -Improvements to existing languages and styles: - -- We now correctly handle JSX with arbitrary node tree depth. -- Argument list for `(lambda)` in Scheme is no longer highlighted as a function - call. -- Stylus syntax doesn't break on valid CSS. -- More correct handling of comments and strings and other improvements for - VimScript. -- More subtle work on the default style. -- We now use anonymous modules for AMD. -- `macro_rules!` is now recognized as a built-in in Rust. - -[John Foster]: https://github.com/jf990 -[Qeole]: https://github.com/Qeole -[Denis Ciccale]: https://github.com/dciccale -[Michael Johnston]: https://github.com/lastobelus -[Taras]: https://github.com/oxdef -[Robert Dodier]: https://github.com/robert-dodier - - -## Version 9.1.0 - -New languages: - -- *Stan* by [Brendan Rocks][] -- *BASIC* by [Raphaël Assénat][] -- *GAUSS* by [Matt Evans][] -- *DTS* by [Martin Braun][] -- *Arduino* by [Stefania Mellai][] - -New Styles: - -- *Arduino Light* by [Stefania Mellai][] - -Improvements to existing languages and styles: - -- Handle return type annotations in Python -- Allow shebang headers in Javascript -- Support strings in Rust meta -- Recognize `struct` as a class-level definition in Rust -- Recognize b-prefixed chars and strings in Rust -- Better numbers handling in Verilog - -[Brendan Rocks]: http://brendanrocks.com -[Raphaël Assénat]: https://github.com/raphnet -[Matt Evans]: https://github.com/matthewevans -[Martin Braun]: https://github.com/mbr0wn -[Stefania Mellai]: https://github.com/smellai - - -## Version 9.0.0 - -The new major version brings a reworked styling system. Highlight.js now defines -a limited set of highlightable classes giving a consistent result across all the -styles and languages. You can read a more detailed explanation and background in -the [tracking issue][#348] that started this long process back in May. - -This change is backwards incompatible for those who uses highlight.js with a -custom stylesheet. The [new style guide][sg] explains how to write styles -in this new world. - -Bundled themes have also suffered a significant amount of improvements and may -look different in places, but all the things now consistent and make more sense. -Among others, the Default style has got a refresh and will probably be tweaked -some more in next releases. Please do give your feedback in our -[issue tracker][issues]. - -New languages in this release: - -- *Caché Object Script* by [Nikita Savchenko][] -- *YAML* by [Stefan Wienert][] -- *MIPS Assembler* by [Nebuleon Fumika][] -- *HSP* by [prince][] - -Improvements to existing languages and styles: - -- ECMAScript 6 modules import now do not require closing semicolon. -- ECMAScript 6 classes constructors now highlighted. -- Template string support for Typescript, as for ECMAScript 6. -- Scala case classes params highlight fixed. -- Built-in names introduced in Julia v0.4 added by [Kenta Sato][]. -- Refreshed Default style. - -Other notable changes: - -- [Web workers support][webworkers] added bu [Jan Kühle][]. -- We now have tests for compressed browser builds as well. -- The building tool chain has been switched to node.js 4.x. and is now - shamelessly uses ES6 features all over the place, courtesy of [Jeremy Hull][]. -- License added to non-compressed browser build. - -[Jan Kühle]: https://github.com/frigus02 -[Stefan Wienert]: https://github.com/zealot128 -[Kenta Sato]: https://github.com/bicycle1885 -[Nikita Savchenko]: https://github.com/ZitRos -[webworkers]: https://github.com/isagalaev/highlight.js#web-workers -[Jeremy Hull]: https://github.com/sourrust -[#348]: https://github.com/isagalaev/highlight.js/issues/348 -[sg]: http://highlightjs.readthedocs.org/en/latest/style-guide.html -[issues]: https://github.com/isagalaev/highlight.js/issues -[Nebuleon Fumika]: https://github.com/Nebuleon -[prince]: https://github.com/prince-0203 - - -## Version 8.9.1 - -Some last-minute changes reverted due to strange bug with minified browser build: - -- Scala case classes params highlight fixed -- ECMAScript 6 modules import now do not require closing semicolon -- ECMAScript 6 classes constructors now highlighted -- Template string support for Typescript, as for ECMAScript 6 -- License added to not minified browser build - - -## Version 8.9.0 - -New languages: - -- *crmsh* by [Kristoffer Gronlund][] -- *SQF* by [Soren Enevoldsen][] - -[Kristoffer Gronlund]: https://github.com/krig -[Soren Enevoldsen]: https://github.com/senevoldsen90 - -Notable fixes and improvements to existing languages: - -- Added `abstract` and `namespace` keywords to TypeScript by [Daniel Rosenwasser][] -- Added `label` support to Dockerfile by [Ladislav Prskavec][] -- Crystal highlighting improved by [Tsuyusato Kitsune][] -- Missing Swift keywords added by [Nate Cook][] -- Improve detection of C block comments -- ~~Scala case classes params highlight fixed~~ -- ~~ECMAScript 6 modules import now do not require closing semicolon~~ -- ~~ECMAScript 6 classes constructors now highlighted~~ -- ~~Template string support for Typescript, as for ECMAScript 6~~ - -Other notable changes: - -- ~~License added to not minified browser build~~ - -[Kristoffer Gronlund]: https://github.com/krig -[Søren Enevoldsen]: https://github.com/senevoldsen90 -[Daniel Rosenwasser]: https://github.com/DanielRosenwasser -[Ladislav Prskavec]: https://github.com/abtris -[Tsuyusato Kitsune]: https://github.com/MakeNowJust -[Nate Cook]: https://github.com/natecook1000 - - -## Version 8.8.0 - -New languages: - -- *Golo* by [Philippe Charrière][] -- *GAMS* by [Stefan Bechert][] -- *IRPF90* by [Anthony Scemama][] -- *Access logs* by [Oleg Efimov][] -- *Crystal* by [Tsuyusato Kitsune][] - -Notable fixes and improvements to existing languages: - -- JavaScript highlighting no longer fails with ES6 default parameters -- Added keywords `async` and `await` to Python -- PHP heredoc support improved -- Allow preprocessor directives within C++ functions - -Other notable changes: - -- Change versions to X.Y.Z SemVer-compatible format -- Added ability to build all targets at once - -[Philippe Charrière]: https://github.com/k33g -[Stefan Bechert]: https://github.com/b-pos465 -[Anthony Scemama]: https://github.com/scemama -[Oleg Efimov]: https://github.com/Sannis -[Tsuyusato Kitsune]: https://github.com/MakeNowJust - - -## Version 8.7 - -New languages: - -- *Zephir* by [Oleg Efimov][] -- *Elm* by [Janis Voigtländer][] -- *XQuery* by [Dirk Kirsten][] -- *Mojolicious* by [Dotan Dimet][] -- *AutoIt* by Manh Tuan from [J2TeaM][] -- *Toml* (ini extension) by [Guillaume Gomez][] - -New styles: - -- *Hopscotch* by [Jan T. Sott][] -- *Grayscale* by [MY Sun][] - -Notable fixes and improvements to existing languages: - -- Fix encoding of images when copied over in certain builds -- Fix incorrect highlighting of the word "bug" in comments -- Treat decorators different from matrix multiplication in Python -- Fix traits inheritance highlighting in Rust -- Fix incorrect document -- Oracle keywords added to SQL language definition by [Vadimtro][] -- Postgres keywords added to SQL language definition by [Benjamin Auder][] -- Fix registers in x86asm being highlighted as a hex number -- Fix highlighting for numbers with a leading decimal point -- Correctly highlight numbers and strings inside of C/C++ macros -- C/C++ functions now support pointer, reference, and move returns - -[Oleg Efimov]: https://github.com/Sannis -[Guillaume Gomez]: https://github.com/GuillaumeGomez -[Janis Voigtländer]: https://github.com/jvoigtlaender -[Jan T. Sott]: https://github.com/idleberg -[Dirk Kirsten]: https://github.com/dirkk -[MY Sun]: https://github.com/simonmysun -[Vadimtro]: https://github.com/Vadimtro -[Benjamin Auder]: https://github.com/ghost -[Dotan Dimet]: https://github.com/dotandimet -[J2TeaM]: https://github.com/J2TeaM - - -## Version 8.6 - -New languages: - -- *C/AL* by [Kenneth Fuglsang][] -- *DNS zone file* by [Tim Schumacher][] -- *Ceylon* by [Lucas Werkmeister][] -- *OpenSCAD* by [Dan Panzarella][] -- *Inform7* by [Bruno Dias][] -- *armasm* by [Dan Panzarella][] -- *TP* by [Jay Strybis][] - -New styles: - -- *Atelier Cave*, *Atelier Estuary*, - *Atelier Plateau* and *Atelier Savanna* by [Bram de Haan][] -- *Github Gist* by [Louis Barranqueiro][] - -Notable fixes and improvements to existing languages: - -- Multi-line raw strings from C++11 are now supported -- Fix class names with dashes in HAML -- The `async` keyword from ES6/7 is now supported -- TypeScript functions handle type and parameter complexity better -- We unified phpdoc/javadoc/yardoc etc modes across all languages -- CSS .class selectors relevance was dropped to prevent wrong language detection -- Images is now included to CDN build -- Release process is now automated - -[Bram de Haan]: https://github.com/atelierbram -[Kenneth Fuglsang]: https://github.com/kfuglsang -[Louis Barranqueiro]: https://github.com/LouisBarranqueiro -[Tim Schumacher]: https://github.com/enko -[Lucas Werkmeister]: https://github.com/lucaswerkmeister -[Dan Panzarella]: https://github.com/pzl -[Bruno Dias]: https://github.com/sequitur -[Jay Strybis]: https://github.com/unreal - - -## Version 8.5 - -New languages: - -- *pf.conf* by [Peter Piwowarski][] -- *Julia* by [Kenta Sato][] -- *Prolog* by [Raivo Laanemets][] -- *Docker* by [Alexis Hénaut][] -- *Fortran* by [Anthony Scemama][] and [Thomas Applencourt][] -- *Kotlin* by [Sergey Mashkov][] - -New styles: - -- *Agate* by [Taufik Nurrohman][] -- *Darcula* by [JetBrains][] -- *Atelier Sulphurpool* by [Bram de Haan][] -- *Android Studio* by [Pedro Oliveira][] - -Notable fixes and improvements to existing languages: - -- ES6 features in JavaScript are better supported now by [Gu Yiling][]. -- Swift now recognizes body-less method definitions. -- Single expression functions `def foo, do: ... ` now work in Elixir. -- More uniform detection of built-in classes in Objective C. -- Fixes for number literals and processor directives in Rust. -- HTML ` - ``` - -- `tabReplace` and `useBR` that were used in different places are also unified - into the global options object and are to be set using `configure(options)`. - This function is documented in our [API docs][]. Also note that these - parameters are gone from `highlightBlock` and `fixMarkup` which are now also - rely on `configure`. - -- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which - was used to register languages with the library in favor of two new methods: - `registerLanguage` and `getLanguage`. Both are documented in our [API docs][]. - -- Result returned from `highlight` and `highlightAuto` no longer contains two - separate attributes contributing to relevance score, `relevance` and - `keyword_count`. They are now unified in `relevance`. - -Another technically compatible change that nonetheless might need attention: - -- The structure of the NPM package was refactored, so if you had installed it - locally, you'll have to update your paths. The usual `require('highlight.js')` - works as before. This is contributed by [Dmitry Smolin][]. - -New features: - -- Languages now can be recognized by multiple names like "js" for JavaScript or - "html" for, well, HTML (which earlier insisted on calling it "xml"). These - aliases can be specified in the class attribute of the code container in your - HTML as well as in various API calls. For now there are only a few very common - aliases but we'll expand it in the future. All of them are listed in the - [class reference][cr]. - -- Language detection can now be restricted to a subset of languages relevant in - a given context — a web page or even a single highlighting call. This is - especially useful for node.js build that includes all the known languages. - Another example is a StackOverflow-style site where users specify languages - as tags rather than in the markdown-formatted code snippets. This is - documented in the [API reference][] (see methods `highlightAuto` and - `configure`). - -- Language definition syntax streamlined with [variants][] and - [beginKeywords][]. - -New languages and styles: - -- *Oxygene* by [Carlo Kok][] -- *Mathematica* by [Daniel Kvasnička][] -- *Autohotkey* by [Seongwon Lee][] -- *Atelier* family of styles in 10 variants by [Bram de Haan][] -- *Paraíso* styles by [Jan T. Sott][] - -Miscellaneous improvements: - -- Highlighting `=>` prompts in Clojure. -- [Jeremy Hull][] fixed a lot of styles for consistency. -- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html]. -- Objective C and C# now properly highlight titles in method definition. -- Big overhaul of relevance counting for a number of languages. Please do report - bugs about mis-detection of non-trivial code snippets! - -[API reference]: http://highlightjs.readthedocs.org/en/latest/api.html - -[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html -[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html -[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion -[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d -[php-html]: https://twitter.com/highlightjs/status/408890903017689088 - -[Carlo Kok]: https://github.com/carlokok -[Bram de Haan]: https://github.com/atelierbram -[Daniel Kvasnička]: https://github.com/dkvasnicka -[Dmitry Smolin]: https://github.com/dimsmol -[Jeremy Hull]: https://github.com/sourrust -[Seongwon Lee]: https://github.com/dlimpid -[Jan T. Sott]: https://github.com/idleberg - - -## Version 7.5 - -A catch-up release dealing with some of the accumulated contributions. This one -is probably will be the last before the 8.0 which will be slightly backwards -incompatible regarding some advanced use-cases. - -One outstanding change in this version is the addition of 6 languages to the -[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and -Makefile. It now weighs about 6K more but we're going to keep it under 30K. - -New languages: - -- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud] -- [LiveCode Server][lcs] by [Ralf Bitter][revig] -- Scilab by [Sylvestre Ledru][sylvestre] -- basic support for Makefile by [Ivan Sagalaev][isagalaev] - -Improvements: - -- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}` - regexps. -- Clojure now allows a function call in the beginning of s-expressions - `(($filter "myCount") (arr 1 2 3 4 5))`. -- Haskell's got new keywords and now recognizes more things like pragmas, - preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep] - for the implementation and to [Jeremy Hull][sourrust] for guiding it. -- Miscellaneous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#. - -[mehdid]: https://github.com/mehdid -[nbraud]: https://github.com/nbraud -[revig]: https://github.com/revig -[lcs]: http://livecode.com/developers/guides/server/ -[sylvestre]: https://github.com/sylvestre -[isagalaev]: https://github.com/isagalaev -[treep]: https://github.com/treep -[sourrust]: https://github.com/sourrust -[d]: http://highlightjs.org/download/ - - -## New core developers - -The latest long period of almost complete inactivity in the project coincided -with growing interest to it led to a decision that now seems completely obvious: -we need more core developers. - -So without further ado let me welcome to the core team two long-time -contributors: [Jeremy Hull][] and [Oleg -Efimov][]. - -Hope now we'll be able to work through stuff faster! - -P.S. The historical commit is [here][1] for the record. - -[Jeremy Hull]: https://github.com/sourrust -[Oleg Efimov]: https://github.com/sannis -[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f - - -## Version 7.4 - -This long overdue version is a snapshot of the current source tree with all the -changes that happened during the past year. Sorry for taking so long! - -Along with the changes in code highlight.js has finally got its new home at -, moving from its cradle on Software Maniacs which it -outgrew a long time ago. Be sure to report any bugs about the site to -. - -On to what's new… - -New languages: - -- Handlebars templates by [Robin Ward][] -- Oracle Rules Language by [Jason Jacobson][] -- F# by [Joans Follesø][] -- AsciiDoc and Haml by [Dan Allen][] -- Lasso by [Eric Knibbe][] -- SCSS by [Kurt Emch][] -- VB.NET by [Poren Chiang][] -- Mizar by [Kelley van Evert][] - -[Robin Ward]: https://github.com/eviltrout -[Jason Jacobson]: https://github.com/jayce7 -[Joans Follesø]: https://github.com/follesoe -[Dan Allen]: https://github.com/mojavelinux -[Eric Knibbe]: https://github.com/EricFromCanada -[Kurt Emch]: https://github.com/kemch -[Poren Chiang]: https://github.com/rschiang -[Kelley van Evert]: https://github.com/kelleyvanevert - -New style themes: - -- Monokai Sublime by [noformnocontent][] -- Railscasts by [Damien White][] -- Obsidian by [Alexander Marenin][] -- Docco by [Simon Madine][] -- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything) -- Foundation by [Dan Allen][] - -[noformnocontent]: http://nn.mit-license.org/ -[Damien White]: https://github.com/visoft -[Alexander Marenin]: https://github.com/ioncreature -[Simon Madine]: https://github.com/thingsinjars -[Ivan Sagalaev]: https://github.com/isagalaev - -Other notable changes: - -- Corrected many corner cases in CSS. -- Dropped Python 2 version of the build tool. -- Implemented building for the AMD format. -- Updated Rust keywords (thanks to [Dmitry Medvinsky][]). -- Literal regexes can now be used in language definitions. -- CoffeeScript highlighting is now significantly more robust and rich due to - input from [Cédric Néhémie][]. - -[Dmitry Medvinsky]: https://github.com/dmedvinsky -[Cédric Néhémie]: https://github.com/abe33 - - -## Version 7.3 - -- Since this version highlight.js no longer works in IE version 8 and older. - It's made it possible to reduce the library size and dramatically improve code - readability and made it easier to maintain. Time to go forward! - -- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and - Brainfuck (by [Evgeny Stepanischev][bolk]). - -- Improvements to existing languages: - - - interpreter prompt in Python (`>>>` and `...`) - - @-properties and classes in CoffeeScript - - E4X in JavaScript (by [Oleg Efimov][oe]) - - new keywords in Perl (by [Kirk Kimmel][kk]) - - big Ruby syntax update (by [Vasily Polovnyov][vast]) - - small fixes in Bash - -- Also Oleg Efimov did a great job of moving all the docs for language and style - developers and contributors from the old wiki under the source code in the - "docs" directory. Now these docs are nicely presented at - . - -[ng]: https://github.com/nathan11g -[dd]: https://github.com/drdrang -[bolk]: https://github.com/bolknote -[oe]: https://github.com/Sannis -[kk]: https://github.com/kimmel -[vast]: https://github.com/vast - - -## Version 7.2 - -A regular bug-fix release without any significant new features. Enjoy! - - -## Version 7.1 - -A Summer crop: - -- [Marc Fornos][mf] made the definition for Clojure along with the matching - style Rainbow (which, of course, works for other languages too). -- CoffeeScript support continues to improve getting support for regular - expressions. -- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the - [project by Chris Kempson][tm0]. -- Thanks to [Casey Duncun][cd] the library can now be built in the popular - [AMD format][amd]. -- And last but not least, we've got a fair number of correctness and consistency - fixes, including a pretty significant refactoring of Ruby. - -[mf]: https://github.com/mfornos -[tm]: http://jmblog.github.com/color-themes-for-highlightjs/ -[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme -[cd]: https://github.com/caseman -[amd]: http://requirejs.org/docs/whyamd.html - - -## Version 7.0 - -The reason for the new major version update is a global change of keyword syntax -which resulted in the library getting smaller once again. For example, the -hosted build is 2K less than at the previous version while supporting two new -languages. - -Notable changes: - -- The library now works not only in a browser but also with [node.js][]. It is - installable with `npm install highlight.js`. [API][] docs are available on our - wiki. - -- The new unique feature (apparently) among syntax highlighters is highlighting - *HTTP* headers and an arbitrary language in the request body. The most useful - languages here are *XML* and *JSON* both of which highlight.js does support. - Here's [the detailed post][p] about the feature. - -- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an - emulation of*XCode* IDE by [Angel Olloqui][ao]. - -- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc] - and *GLSL* by [Sergey Tikhomirov][st]. - -- *Nginx* syntax has become a million times smaller and more universal thanks to - remaking it in a more generic manner that doesn't require listing all the - directives in the known universe. - -- Function titles are now highlighted in *PHP*. - -- *Haskell* and *VHDL* were significantly reworked to be more rich and correct - by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik]. - -And last but not least, many bugs have been fixed around correctness and -language detection. - -Overall highlight.js currently supports 51 languages and 20 style themes. - -[node.js]: http://nodejs.org/ -[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api -[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/ -[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html -[ao]: https://github.com/angelolloqui -[ar]: https://github.com/raleksandar -[jc]: https://github.com/jcheng5 -[st]: https://github.com/tikhomirov -[sr]: https://github.com/sourrust -[ik]: https://github.com/ikalnitsky - - -## Version 6.2 - -A lot of things happened in highlight.js since the last version! We've got nine -new contributors, the discussion group came alive, and the main branch on GitHub -now counts more than 350 followers. Here are most significant results coming -from all this activity: - -- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and - experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av], - [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis - Bardadym][db] and [John Crepezzi][jc]. - -- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of - another well-known highlighter Google Code Prettify by [Aahan Krish][ak]. - -- A vast number of [correctness fixes and code refactorings][log], mostly made - by [Oleg Efimov][oe] and [Evgeny Stepanischev][es]. - -[av]: https://github.com/vlasovskikh -[am]: https://github.com/myadzel -[dn]: https://github.com/dnagir -[oe]: https://github.com/Sannis -[db]: https://github.com/btd -[jc]: https://github.com/seejohnrun -[lm]: http://grigio.org/ -[ak]: https://github.com/geekpanth3r -[es]: https://github.com/bolknote -[log]: https://github.com/isagalaev/highlight.js/commits/ - - -## Version 6.1 — Solarized - -[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][] -style theme famous for being based on the intricate color theory to achieve -correct contrast and color perception. It is now available for highlight.js in -both variants — light and dark. - -This version also adds a new original style Arta. Its author pumbur maintains a -[heavily modified fork of highlight.js][pb] on GitHub. - -[jh]: https://github.com/sourrust -[solarized]: http://ethanschoonover.com/solarized -[pb]: https://github.com/pumbur/highlight.js - - -## Version 6.0 - -New major version of the highlighter has been built on a significantly -refactored syntax. Due to this it's even smaller than the previous one while -supporting more languages! - -New languages are: - -- Haskell by [Jeremy Hull][sourrust] -- Erlang in two varieties — module and REPL — made collectively by [Nikolay - Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov] -- Objective C by [Valerii Hiora][vhbit] -- Vala by [Antono Vasiljev][antono] -- Go by [Stephan Kountso][steplg] - -[sourrust]: https://github.com/sourrust -[desh]: http://desh.su/ -[arhibot]: https://github.com/arhibot -[ignatov]: https://github.com/ignatov -[vhbit]: https://github.com/vhbit -[antono]: https://github.com/antono -[steplg]: https://github.com/steplg - -Also this version is marginally faster and fixes a number of small long-standing -bugs. - -Developer overview of the new language syntax is available in a [blog post about -recent beta release][beta]. - -[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/ - -P.S. New version is not yet available on a Yandex CDN, so for now you have to -download [your own copy][d]. - -[d]: /soft/highlight/en/download/ - - -## Version 5.14 - -Fixed bugs in HTML/XML detection and relevance introduced in previous -refactoring. - -Also test.html now shows the second best result of language detection by -relevance. - - -## Version 5.13 - -Past weekend began with a couple of simple additions for existing languages but -ended up in a big code refactoring bringing along nice improvements for language -developers. - -### For users - -- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard. -- Description of HTML has got new tags from [HTML 5][]. -- CSS-styles have been unified to use consistent padding and also have lost - pop-outs with names of detected languages. -- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake & VHDL. - -This makes total number of languages supported by highlight.js to reach 35. - -Bug fixes: - -- Custom classes on `
` tags are not being overridden anymore
-- More correct highlighting of code blocks inside non-`
` containers:
-  highlighter now doesn't insist on replacing them with its own container and
-  just replaces the contents.
-- Small fixes in browser compatibility and heuristics.
-
-[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
-[html 5]: http://en.wikipedia.org/wiki/HTML5
-[ik]: http://kalnitsky.org.ua/
-
-### For developers
-
-The most significant change is the ability to include language submodes right
-under `contains` instead of defining explicit named submodes in the main array:
-
-    contains: [
-      'string',
-      'number',
-      {begin: '\\n', end: hljs.IMMEDIATE_RE}
-    ]
-
-This is useful for auxiliary modes needed only in one place to define parsing.
-Note that such modes often don't have `className` and hence won't generate a
-separate `` in the resulting markup. This is similar in effect to
-`noMarkup: true`. All existing languages have been refactored accordingly.
-
-Test file test.html has at last become a real test. Now it not only puts the
-detected language name under the code snippet but also tests if it matches the
-expected one. Test summary is displayed right above all language snippets.
-
-
-## CDN
-
-Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
-[Link up][l]!
-
-[yandex]: http://yandex.com/
-[l]: http://softwaremaniacs.org/soft/highlight/en/download/
-
-
-## Version 5.10 — "Paris".
-
-Though I'm on a vacation in Paris, I decided to release a new version with a
-couple of small fixes:
-
-- Tomas Vitvar discovered that TAB replacement doesn't always work when used
-  with custom markup in code
-- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
-
-
-## Version 5.9
-
-A long-awaited version is finally released.
-
-New languages:
-
-- Andrew Fedorov made a definition for Lua
-- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
-  Nginx config
-- [Vladimir Moskva][vm] made a definition for TeX
-
-[pl]: http://kung-fu-tzu.ru/
-[vm]: http://fulc.ru/
-
-Fixes for existing languages:
-
-- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
-  [YARD][] inline documentation
-- the definition of SQL has become more solid and now it shouldn't be overly
-  greedy when it comes to language detection
-
-[ls]: http://gnuu.org/
-[yard]: http://yardoc.org/
-
-The highlighter has become more usable as a library allowing to do highlighting
-from initialization code of JS frameworks and in ajax methods (see.
-readme.eng.txt).
-
-Also this version drops support for the [WordPress][wp] plugin. Everyone is
-welcome to [pick up its maintenance][p] if needed.
-
-[wp]: http://wordpress.org/
-[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
-
-
-## Version 5.8
-
-- Jan Berkel has contributed a definition for Scala. +1 to hotness!
-- All CSS-styles are rewritten to work only inside `
` tags to avoid
-  conflicts with host site styles.
-
-
-## Version 5.7.
-
-Fixed escaping of quotes in VBScript strings.
-
-
-## Version 5.5
-
-This version brings a small change: now .ini-files allow digits, underscores and
-square brackets in key names.
-
-
-## Version 5.4
-
-Fixed small but upsetting bug in the packer which caused incorrect highlighting
-of explicitly specified languages. Thanks to Andrew Fedorov for precise
-diagnostics!
-
-
-## Version 5.3
-
-The version to fulfil old promises.
-
-The most significant change is that highlight.js now preserves custom user
-markup in code along with its own highlighting markup. This means that now it's
-possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
-[initial proposal][1] and for making a proof-of-concept patch.
-
-Also in this version:
-
-- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
-  support for CSS @-rules and Ruby symbols.
-- Yura Zaripov has sent two styles: Brown Paper and School Book.
-- Oleg Volchkov has sent a definition for [Parser 3][p3].
-
-[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
-[p3]: http://www.parser.ru/
-[vp]: http://vasily.polovnyov.ru/
-[vd]: http://dolzhenko.blogspot.com/
-
-
-## Version 5.2
-
-- at last it's possible to replace indentation TABs with something sensible
-  (e.g. 2 or 4 spaces)
-- new keywords and built-ins for 1C by Sergey Baranov
-- a couple of small fixes to Apache highlighting
-
-
-## Version 5.1
-
-This is one of those nice version consisting entirely of new and shiny
-contributions!
-
-- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
-- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
-  original visual style for it is now available for all highlight.js languages
-  under the name "Magula".
-- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
-  languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
-  the matter.
-
-[vooon]: http://vehq.ru/about/
-[rukeba]: http://rukeba.com/
-[drake]: http://drakeguan.org/
-[ke]: http://k-evdokimenko.moikrug.ru/
-
-
-## Version 5.0
-
-The main change in the new major version of highlight.js is a mechanism for
-packing several languages along with the library itself into a single compressed
-file. Now sites using several languages will load considerably faster because
-the library won't dynamically include additional files while loading.
-
-Also this version fixes a long-standing bug with Javascript highlighting that
-couldn't distinguish between regular expressions and division operations.
-
-And as usually there were a couple of minor correctness fixes.
-
-Great thanks to all contributors! Keep using highlight.js.
-
-
-## Version 4.3
-
-This version comes with two contributions from [Jason Diamond][jd]:
-
-- language definition for C# (yes! it was a long-missed thing!)
-- Visual Studio-like highlighting style
-
-Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
-
-[jd]: http://jason.diamond.name/weblog/
-
-
-## Version 4.2
-
-The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
-somewhat experimental meaning that for highlighting "keywords" it doesn't use
-any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
-in parentheses wherever it makes sense. I'd like to ask people programming in
-Lisp to confirm if it's a good idea and send feedback to [the forum][f].
-
-Other changes:
-
-- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
-- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
-  test.html
-- comments now allowed inside Ruby function definition
-- [MEL][] language from [Shuen-Huei Guan][drake]
-- whitespace now allowed between `
` and ``
-- better auto-detection of C++ and PHP
-- HTML allows embedded VBScript (`<% .. %>`)
-
-[f]: http://softwaremaniacs.org/forum/highlightjs/
-[voldmar]: http://voldmar.ya.ru/
-[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
-[drake]: http://drakeguan.org/
-
-
-## Version 4.1
-
-Languages:
-
-- Bash from Vah
-- DOS bat-files from Alexander Makarov (Sam)
-- Diff files from Vasily Polovnyov
-- Ini files from myself though initial idea was from Sam
-
-Styles:
-
-- Zenburn from Vladimir Epifanov, this is an imitation of a
-  [well-known theme for Vim][zenburn].
-- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
-  just one color in only three gradations :-)
-
-In other news. [One small bug][bug] was fixed, built-in keywords were added for
-Python and C++ which improved auto-detection for the latter (it was shame that
-[my wife's blog][alenacpp] had issues with it from time to time). And lastly
-thanks go to Sam for getting rid of my stylistic comments in code that were
-getting in the way of [JSMin][].
-
-[zenburn]: http://en.wikipedia.org/wiki/Zenburn
-[alenacpp]: http://alenacpp.blogspot.com/
-[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
-[jsmin]: http://code.google.com/p/jsmin-php/
-
-
-## Version 4.0
-
-New major version is a result of vast refactoring and of many contributions.
-
-Visible new features:
-
-- Highlighting of embedded languages. Currently is implemented highlighting of
-  Javascript and CSS inside HTML.
-- Bundled 5 ready-made style themes!
-
-Invisible new features:
-
-- Highlight.js no longer pollutes global namespace. Only one object and one
-  function for backward compatibility.
-- Performance is further increased by about 15%.
-
-Changing of a major version number caused by a new format of language definition
-files. If you use some third-party language files they should be updated.
-
-
-## Version 3.5
-
-A very nice version in my opinion fixing a number of small bugs and slightly
-increased speed in a couple of corner cases. Thanks to everybody who reports
-bugs in he [forum][f] and by email!
-
-There is also a new language — XML. A custom XML formerly was detected as HTML
-and didn't highlight custom tags. In this version I tried to make custom XML to
-be detected and highlighted by its own rules. Which by the way include such
-things as CDATA sections and processing instructions (``).
-
-[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
-
-
-## Version 3.3
-
-[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
-File export.html contains a little program that shows and allows to copy and
-paste an HTML code generated by the highlighter for any code snippet. This can
-be useful in situations when one can't use the script itself on a site.
-
-
-[xonix]: http://xonixx.blogspot.com/
-
-
-## Version 3.2 consists completely of contributions:
-
-- Vladimir Gubarkov has described SmallTalk
-- Yuri Ivanov has described 1C
-- Peter Leonov has packaged the highlighter as a Firefox extension
-- Vladimir Ermakov has compiled a mod for phpBB
-
-Many thanks to you all!
-
-
-## Version 3.1
-
-Three new languages are available: Django templates, SQL and Axapta. The latter
-two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
-SQL definition but I'd never started it be it from the ground up :-)
-
-The engine itself has got a long awaited feature of grouping keywords
-("keyword", "built-in function", "literal"). No more hacks!
-
-[1]: http://roudakov.ru/
-
-
-## Version 3.0
-
-It is major mainly because now highlight.js has grown large and has become
-modular. Now when you pass it a list of languages to highlight it will
-dynamically load into a browser only those languages.
-
-Also:
-
-- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
-  RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
-  languages!
-- Heuristics for C++ and HTML got better.
-- I've implemented (at last) a correct handling of backslash escapes in C-like
-  languages.
-
-There is also a small backwards incompatible change in the new version. The
-function initHighlighting that was used to initialize highlighting instead of
-initHighlightingOnLoad a long time ago no longer works. If you by chance still
-use it — replace it with the new one.
-
-[RibKit]: http://ribkit.sourceforge.net/
-
-
-## Version 2.9
-
-Highlight.js is a parser, not just a couple of regular expressions. That said
-I'm glad to announce that in the new version 2.9 has support for:
-
-- in-string substitutions for Ruby -- `#{...}`
-- strings from from numeric symbol codes (like #XX) for Delphi
-
-
-## Version 2.8
-
-A maintenance release with more tuned heuristics. Fully backwards compatible.
-
-
-## Version 2.7
-
-- Nikita Ledyaev presents highlighting for VBScript, yay!
-- A couple of bugs with escaping in strings were fixed thanks to Mickle
-- Ongoing tuning of heuristics
-
-Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
-
-
-## Version 2.4
-
-- Peter Leonov provides another improved highlighting for Perl
-- Javascript gets a new kind of keywords — "literals". These are the words
-  "true", "false" and "null"
-
-Also highlight.js homepage now lists sites that use the library. Feel free to
-add your site by [dropping me a message][mail] until I find the time to build a
-submit form.
-
-[mail]: mailto:Maniac@SoftwareManiacs.Org
-
-
-## Version 2.3
-
-This version fixes IE breakage in previous version. My apologies to all who have
-already downloaded that one!
-
-
-## Version 2.2
-
-- added highlighting for Javascript
-- at last fixed parsing of Delphi's escaped apostrophes in strings
-- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
-  Perl
-
-
-## Version 2.0
-
-- Ruby support by [Anton Kovalyov][ak]
-- speed increased by orders of magnitude due to new way of parsing
-- this same way allows now correct highlighting of keywords in some tricky
-  places (like keyword "End" at the end of Delphi classes)
-
-[ak]: http://anton.kovalyov.net/
-
-
-## Version 1.0
-
-Version 1.0 of javascript syntax highlighter is released!
-
-It's the first version available with English description. Feel free to post
-your comments and question to [highlight.js forum][forum]. And don't be afraid
-if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
-
-[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
diff --git a/highlight/README.md b/highlight/README.md
deleted file mode 100644
index 9f76e6bd5..000000000
--- a/highlight/README.md
+++ /dev/null
@@ -1,150 +0,0 @@
-# Highlight.js
-
-[![Build Status](https://travis-ci.org/isagalaev/highlight.js.svg?branch=master)](https://travis-ci.org/isagalaev/highlight.js)
-
-Highlight.js is a syntax highlighter written in JavaScript. It works in
-the browser as well as on the server. It works with pretty much any
-markup, doesn’t depend on any framework and has automatic language
-detection.
-
-## Getting Started
-
-The bare minimum for using highlight.js on a web page is linking to the
-library along with one of the styles and calling
-[`initHighlightingOnLoad`][1]:
-
-```html
-
-
-
-```
-
-This will find and highlight code inside of `
` tags; it tries
-to detect the language automatically. If automatic detection doesn’t
-work for you, you can specify the language in the `class` attribute:
-
-```html
-
...
-``` - -The list of supported language classes is available in the [class -reference][2]. Classes can also be prefixed with either `language-` or -`lang-`. - -To disable highlighting altogether use the `nohighlight` class: - -```html -
...
-``` - -## Custom Initialization - -When you need a bit more control over the initialization of -highlight.js, you can use the [`highlightBlock`][3] and [`configure`][4] -functions. This allows you to control *what* to highlight and *when*. - -Here’s an equivalent way to calling [`initHighlightingOnLoad`][1] using -jQuery: - -```javascript -$(document).ready(function() { - $('pre code').each(function(i, block) { - hljs.highlightBlock(block); - }); -}); -``` - -You can use any tags instead of `
` to mark up your code. If
-you don't use a container that preserve line breaks you will need to
-configure highlight.js to use the `
` tag: - -```javascript -hljs.configure({useBR: true}); - -$('div.code').each(function(i, block) { - hljs.highlightBlock(block); -}); -``` - -For other options refer to the documentation for [`configure`][4]. - - -## Web Workers - -You can run highlighting inside a web worker to avoid freezing the browser -window while dealing with very big chunks of code. - -In your main script: - -```javascript -addEventListener('load', function() { - var code = document.querySelector('#code'); - var worker = new Worker('worker.js'); - worker.onmessage = function(event) { code.innerHTML = event.data; } - worker.postMessage(code.textContent); -}) -``` - -In worker.js: - -```javascript -onmessage = function(event) { - importScripts('/highlight.pack.js'); - var result = self.hljs.highlightAuto(event.data); - postMessage(result.value); -} -``` - - -## Getting the Library - -You can get highlight.js as a hosted, or custom-build, browser script or -as a server module. Right out of the box the browser script supports -both AMD and CommonJS, so if you wish you can use RequireJS or -Browserify without having to build from source. The server module also -works perfectly fine with Browserify, but there is the option to use a -build specific to browsers rather than something meant for a server. -Head over to the [download page][5] for all the options. - -**Don't link to GitHub directly.** The library is not supposed to work straight -from the source, it requires building. If none of the pre-packaged options -work for you refer to the [building documentation][6]. - -**The CDN-hosted package doesn't have all the languages.** Otherwise it'd be -too big. If you don't see the language you need in the ["Common" section][5], -it can be added manually: - -```html - -``` - -**On Almond.** You need to use the optimizer to give the module a name. For -example: - -``` -r.js -o name=hljs paths.hljs=/path/to/highlight out=highlight.js -``` - - -## License - -Highlight.js is released under the BSD License. See [LICENSE][7] file -for details. - -## Links - -The official site for the library is at . - -Further in-depth documentation for the API and other topics is at -. - -Authors and contributors are listed in the [AUTHORS.en.txt][8] file. - -[1]: http://highlightjs.readthedocs.io/en/latest/api.html#inithighlightingonload -[2]: http://highlightjs.readthedocs.io/en/latest/css-classes-reference.html -[3]: http://highlightjs.readthedocs.io/en/latest/api.html#highlightblock-block -[4]: http://highlightjs.readthedocs.io/en/latest/api.html#configure-options -[5]: https://highlightjs.org/download/ -[6]: http://highlightjs.readthedocs.io/en/latest/building-testing.html -[7]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE -[8]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.en.txt diff --git a/highlight/README.ru.md b/highlight/README.ru.md deleted file mode 100644 index ac481d071..000000000 --- a/highlight/README.ru.md +++ /dev/null @@ -1,142 +0,0 @@ -# Highlight.js - -Highlight.js — это инструмент для подсветки синтаксиса, написанный на JavaScript. Он работает -и в браузере, и на сервере. Он работает с практически любой HTML разметкой, не -зависит от каких-либо фреймворков и умеет автоматически определять язык. - - -## Начало работы - -Минимум, что нужно сделать для использования highlight.js на веб-странице — это -подключить библиотеку, CSS-стили и вызывать [`initHighlightingOnLoad`][1]: - -```html - - - -``` - -Библиотека найдёт и раскрасит код внутри тегов `
`, попытавшись
-автоматически определить язык. Когда автоопределение не срабатывает, можно явно
-указать язык в атрибуте class:
-
-```html
-
...
-``` - -Список поддерживаемых классов языков доступен в [справочнике по классам][2]. -Класс также можно предварить префиксами `language-` или `lang-`. - -Чтобы отключить подсветку для какого-то блока, используйте класс `nohighlight`: - -```html -
...
-``` - -## Инициализация вручную - -Чтобы иметь чуть больше контроля за инициализацией подсветки, вы можете -использовать функции [`highlightBlock`][3] и [`configure`][4]. Таким образом -можно управлять тем, *что* и *когда* подсвечивать. - -Вот пример инициализации, эквивалентной вызову [`initHighlightingOnLoad`][1], но -с использованием jQuery: - -```javascript -$(document).ready(function() { - $('pre code').each(function(i, block) { - hljs.highlightBlock(block); - }); -}); -``` - -Вы можете использовать любые теги разметки вместо `
`. Если
-используете контейнер, не сохраняющий переводы строк, вам нужно сказать
-highlight.js использовать для них тег `
`: - -```javascript -hljs.configure({useBR: true}); - -$('div.code').each(function(i, block) { - hljs.highlightBlock(block); -}); -``` - -Другие опции можно найти в документации функции [`configure`][4]. - - -## Web Workers - -Подсветку можно запустить внутри web worker'а, чтобы окно -браузера не подтормаживало при работе с большими кусками кода. - -В основном скрипте: - -```javascript -addEventListener('load', function() { - var code = document.querySelector('#code'); - var worker = new Worker('worker.js'); - worker.onmessage = function(event) { code.innerHTML = event.data; } - worker.postMessage(code.textContent); -}) -``` - -В worker.js: - -```javascript -onmessage = function(event) { - importScripts('/highlight.pack.js'); - var result = self.hljs.highlightAuto(event.data); - postMessage(result.value); -} -``` - - -## Установка библиотеки - -Highlight.js можно использовать в браузере прямо с CDN хостинга или скачать -индивидуальную сборку, а также установив модуль на сервере. На -[странице загрузки][5] подробно описаны все варианты. - -**Не подключайте GitHub напрямую.** Библиотека не предназначена для -использования в виде исходного кода, а требует отдельной сборки. Если вам не -подходит ни один из готовых вариантов, читайте [документацию по сборке][6]. - -**Файл на CDN содержит не все языки.** Иначе он будет слишком большого размера. -Если нужного вам языка нет в [категории "Common"][5], можно дообавить его -вручную: - -```html - -``` - -**Про Almond.** Нужно задать имя модуля в оптимизаторе, например: - -``` -r.js -o name=hljs paths.hljs=/path/to/highlight out=highlight.js -``` - - -## Лицензия - -Highlight.js распространяется под лицензией BSD. Подробнее читайте файл -[LICENSE][7]. - - -## Ссылки - -Официальный сайт билиотеки расположен по адресу . - -Более подробная документация по API и другим темам расположена на -. - -Авторы и контрибьюторы перечислены в файле [AUTHORS.ru.txt][8] file. - -[1]: http://highlightjs.readthedocs.io/en/latest/api.html#inithighlightingonload -[2]: http://highlightjs.readthedocs.io/en/latest/css-classes-reference.html -[3]: http://highlightjs.readthedocs.io/en/latest/api.html#highlightblock-block -[4]: http://highlightjs.readthedocs.io/en/latest/api.html#configure-options -[5]: https://highlightjs.org/download/ -[6]: http://highlightjs.readthedocs.io/en/latest/building-testing.html -[7]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE -[8]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.ru.txt diff --git a/highlight/highlight.pack.js b/highlight/highlight.pack.js deleted file mode 100644 index d4716d6f5..000000000 --- a/highlight/highlight.pack.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! highlight.js v9.8.0 | BSD3 License | git.io/hljslicense */ -!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/[&<>]/gm,function(e){return I[e]})}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return R(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||R(i))return i}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset"}function u(e){l+=""}function c(e){("start"===e.event?o:u)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=i();if(l+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===s);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return l+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):E(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"===e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var l=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=l.length?t(l.join("|"),!0):{exec:function(){return null}}}}r(e)}function l(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?"":y.classPrefix,i='',i+n+o}function p(){var e,t,r,a;if(!E.k)return n(B);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(B);r;)a+=n(B.substr(t,r.index-t)),e=g(E,r),e?(M+=e[1],a+=h(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(B);return a+n(B.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!x[E.sL])return n(B);var t=e?l(E.sL,B,!0,L[E.sL]):f(B,E.sL.length?E.sL:void 0);return E.r>0&&(M+=t.r),e&&(L[E.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){k+=null!=E.sL?d():p(),B=""}function v(e){k+=e.cN?h(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(B+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?B+=n:(t.eB&&(B+=n),b(),t.rB||t.eB||(B=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?B+=n:(a.rE||a.eE||(B+=n),b(),a.eE&&(B=n));do E.cN&&(k+=C),E.skip||(M+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"")+'"');return B+=n,n.length||1}var N=R(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var w,E=i||N,L={},k="";for(w=E;w!==N;w=w.parent)w.cN&&(k=h(w.cN,"",!0)+k);var B="",M=0;try{for(var I,j,O=0;;){if(E.t.lastIndex=O,I=E.t.exec(t),!I)break;j=m(t.substr(O,I.index-O),I[0]),O=I.index+j}for(m(t.substr(O)),w=E;w.parent;w=w.parent)w.cN&&(k+=C);return{r:M,value:k,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function f(e,t){t=t||y.languages||E(x);var r={r:0,value:n(e)},a=r;return t.filter(R).forEach(function(n){var t=l(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function g(e){return y.tabReplace||y.useBR?e.replace(M,function(e,n){return y.useBR&&"\n"===e?"
":y.tabReplace?n.replace(/\t/g,y.tabReplace):void 0}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n,t,r,o,s,p=i(e);a(p)||(y.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):n=e,s=n.textContent,r=p?l(p,s,!0):f(s),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),s)),r.value=g(r.value),e.innerHTML=r.value,e.className=h(e.className,p,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function d(e){y=o(y,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function N(){return E(x)}function R(e){return e=(e||"").toLowerCase(),x[e]||x[L[e]]}var w=[],E=Object.keys,x={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="
",y={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},I={"&":"&","<":"<",">":">"};return e.highlight=l,e.highlightAuto=f,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=R,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("java",function(e){var a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",t=a+"(<"+a+"(\\s*,\\s*"+a+")*>)?",r="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",c={cN:"number",b:s,r:0};return{aliases:["jsp"],k:r,i:/<\/|#/,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new throw return else",r:0},{cN:"function",b:"("+t+"\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:r,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:r,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},c,{cN:"meta",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("coffeescript",function(e){var c={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},n="[A-Za-z$_][0-9A-Za-z$_]*",r={cN:"subst",b:/#\{/,e:/}/,k:c},s=[e.BNM,e.inherit(e.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,r]},{b:/"/,e:/"/,c:[e.BE,r]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[r,e.HCM]},{b:"//[gim]*",r:0},{b:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{b:"@"+n},{b:"`",e:"`",eB:!0,eE:!0,sL:"javascript"}];r.c=s;var i=e.inherit(e.TM,{b:n}),t="(\\(.*\\))?\\s*\\B[-=]>",o={cN:"params",b:"\\([^\\(]",rB:!0,c:[{b:/\(/,e:/\)/,k:c,c:["self"].concat(s)}]};return{aliases:["coffee","cson","iced"],k:c,i:/\/\*/,c:s.concat([e.C("###","###"),e.HCM,{cN:"function",b:"^\\s*"+n+"\\s*=\\s*"+t,e:"[-=]>",rB:!0,c:[i,o]},{b:/[:\(,=]\s*/,r:0,c:[{cN:"function",b:t,e:"[-=]>",rB:!0,c:[o]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{b:n+":",e:":",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\._]+/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,a,t]}});hljs.registerLanguage("scala",function(e){var t={cN:"meta",b:"@[A-Za-z]+"},a={cN:"subst",v:[{b:"\\$[A-Za-z0-9_]+"},{b:"\\${",e:"}"}]},r={cN:"string",v:[{b:'"',e:'"',i:"\\n",c:[e.BE]},{b:'"""',e:'"""',r:10},{b:'[a-z]+"',e:'"',i:"\\n",c:[e.BE,a]},{cN:"string",b:'[a-z]+"""',e:'"""',c:[a],r:10}]},c={cN:"symbol",b:"'\\w[\\w\\d_]*(?!')"},i={cN:"type",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},s={cN:"title",b:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,r:0},n={cN:"class",bK:"class object trait type",e:/[:={\[\n;]/,eE:!0,c:[{bK:"extends with",r:10},{b:/\[/,e:/\]/,eB:!0,eE:!0,r:0,c:[i]},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,r:0,c:[i]},s]},l={cN:"function",bK:"def",e:/[:={\[(\n;]/,eE:!0,c:[s]};return{k:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},c:[e.CLCM,e.CBCM,r,c,i,l,n,e.CNM,t]}});hljs.registerLanguage("sql",function(e){var t=e.C("--","$");return{cI:!0,i:/[<>{}*#]/,c:[{bK:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",e:/;/,eW:!0,l:/[\w\.]+/,k:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},c:[{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[e.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[e.BE]},e.CNM,e.CBCM,t]},e.CBCM,t]}});hljs.registerLanguage("http",function(e){var t="HTTP/[0-9\\.]+";return{aliases:["https"],i:"\\S",c:[{b:"^"+t,e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{b:"^[A-Z]+ (.*?) "+t+"$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" ",eB:!0,eE:!0},{b:t},{cN:"keyword",b:"[A-Z]+"}]},{cN:"attribute",b:"^\\w",e:": ",eE:!0,i:"\\n|\\s|=",starts:{e:"$",r:0}},{b:"\\n\\n",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"|$)",e:">",k:{name:"style"},c:[t],starts:{e:"",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"|$)",e:">",k:{name:"script"},c:[t],starts:{e:"",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("python",function(e){var r={cN:"meta",b:/^(>>>|\.\.\.) /},b={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[r],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[r],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},e.ASM,e.QSM]},a={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},l={cN:"params",b:/\(/,e:/\)/,c:["self",r,a,b]};return{aliases:["py","gyp"],k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)|=>/,c:[r,a,b,e.HCM,{v:[{cN:"function",bK:"def"},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,l,{b:/->/,eW:!0,k:"None"}]},{cN:"meta",b:/^[\t ]*@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b://,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("makefile",function(e){var a={cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]};return{aliases:["mk","mak"],c:[e.HCM,{b:/^\w+\s*\W*=/,rB:!0,r:0,starts:{e:/\s*\W*=/,eE:!0,starts:{e:/$/,r:0,c:[a]}}},{cN:"section",b:/^[\w]+:\s*$/},{cN:"meta",b:/^\.PHONY:/,e:/$/,k:{"meta-keyword":".PHONY"},l:/[\.\w]+/},{b:/^\t+/,e:/$/,r:0,c:[e.QSM,a]}]}});hljs.registerLanguage("json",function(e){var i={literal:"true false null"},n=[e.QSM,e.CNM],r={e:",",eW:!0,eE:!0,c:n,k:i},t={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(r,{b:/:/})],i:"\\S"},c={b:"\\[",e:"\\]",c:[e.inherit(r)],i:"\\S"};return n.splice(n.length,0,t,c),{c:n,k:i,i:"\\S"}});hljs.registerLanguage("dockerfile",function(e){return{aliases:["docker"],cI:!0,k:"from maintainer expose env user onbuild",c:[e.HCM,e.ASM,e.QSM,e.NM,{bK:"run cmd entrypoint volume add copy workdir label healthcheck",starts:{e:/[^\\]\n/,sL:"bash"}}],i:"",c:[e.HCM,{cN:"string",c:[e.BE,r],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0,c:[r]},{cN:"regexp",c:[e.BE,r],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},r]};return{aliases:["nginxconf"],c:[e.HCM,{b:e.UIR+"\\s+{",rB:!0,e:"{",c:[{cN:"section",b:e.UIR}],r:0},{b:e.UIR+"\\s",e:";|{",rB:!0,c:[{cN:"attribute",b:e.UIR,starts:b}],r:0}],i:"[^\\s\\}]"}}); \ No newline at end of file diff --git a/highlight/styles/agate.css b/highlight/styles/agate.css deleted file mode 100644 index 8d64547c5..000000000 --- a/highlight/styles/agate.css +++ /dev/null @@ -1,108 +0,0 @@ -/*! - * Agate by Taufik Nurrohman - * ---------------------------------------------------- - * - * #ade5fc - * #a2fca2 - * #c6b4f0 - * #d36363 - * #fcc28c - * #fc9b9b - * #ffa - * #fff - * #333 - * #62c8f3 - * #888 - * - */ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #333; - color: white; -} - -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-code, -.hljs-emphasis { - font-style: italic; -} - -.hljs-tag { - color: #62c8f3; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-selector-id, -.hljs-selector-class { - color: #ade5fc; -} - -.hljs-string, -.hljs-bullet { - color: #a2fca2; -} - -.hljs-type, -.hljs-title, -.hljs-section, -.hljs-attribute, -.hljs-quote, -.hljs-built_in, -.hljs-builtin-name { - color: #ffa; -} - -.hljs-number, -.hljs-symbol, -.hljs-bullet { - color: #d36363; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal { - color: #fcc28c; -} - -.hljs-comment, -.hljs-deletion, -.hljs-code { - color: #888; -} - -.hljs-regexp, -.hljs-link { - color: #c6b4f0; -} - -.hljs-meta { - color: #fc9b9b; -} - -.hljs-deletion { - background-color: #fc9b9b; - color: #333; -} - -.hljs-addition { - background-color: #a2fca2; - color: #333; -} - -.hljs a { - color: inherit; -} - -.hljs a:focus, -.hljs a:hover { - color: inherit; - text-decoration: underline; -} diff --git a/highlight/styles/androidstudio.css b/highlight/styles/androidstudio.css deleted file mode 100644 index bc8e473b5..000000000 --- a/highlight/styles/androidstudio.css +++ /dev/null @@ -1,66 +0,0 @@ -/* -Date: 24 Fev 2015 -Author: Pedro Oliveira -*/ - -.hljs { - color: #a9b7c6; - background: #282b2e; - display: block; - overflow-x: auto; - padding: 0.5em; -} - -.hljs-number, -.hljs-literal, -.hljs-symbol, -.hljs-bullet { - color: #6897BB; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-deletion { - color: #cc7832; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-link { - color: #629755; -} - -.hljs-comment, -.hljs-quote { - color: #808080; -} - -.hljs-meta { - color: #bbb529; -} - -.hljs-string, -.hljs-attribute, -.hljs-addition { - color: #6A8759; -} - -.hljs-section, -.hljs-title, -.hljs-type { - color: #ffc66d; -} - -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #e8bf6a; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/arduino-light.css b/highlight/styles/arduino-light.css deleted file mode 100644 index 4b8b7fd3c..000000000 --- a/highlight/styles/arduino-light.css +++ /dev/null @@ -1,88 +0,0 @@ -/* - -Arduino® Light Theme - Stefania Mellai - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #FFFFFF; -} - -.hljs, -.hljs-subst { - color: #434f54; -} - -.hljs-keyword, -.hljs-attribute, -.hljs-selector-tag, -.hljs-doctag, -.hljs-name { - color: #00979D; -} - -.hljs-built_in, -.hljs-literal, -.hljs-bullet, -.hljs-code, -.hljs-addition { - color: #D35400; -} - -.hljs-regexp, -.hljs-symbol, -.hljs-variable, -.hljs-template-variable, -.hljs-link, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #00979D; -} - -.hljs-type, -.hljs-string, -.hljs-selector-id, -.hljs-selector-class, -.hljs-quote, -.hljs-template-tag, -.hljs-deletion { - color: #005C5F; -} - -.hljs-title, -.hljs-section { - color: #880000; - font-weight: bold; -} - -.hljs-comment { - color: rgba(149,165,166,.8); -} - -.hljs-meta-keyword { - color: #728E00; -} - -.hljs-meta { - color: #728E00; - color: #434f54; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-function { - color: #728E00; -} - -.hljs-number { - color: #8A7B52; -} diff --git a/highlight/styles/arta.css b/highlight/styles/arta.css deleted file mode 100644 index 75ef3a9e5..000000000 --- a/highlight/styles/arta.css +++ /dev/null @@ -1,73 +0,0 @@ -/* -Date: 17.V.2011 -Author: pumbur -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #222; -} - -.hljs, -.hljs-subst { - color: #aaa; -} - -.hljs-section { - color: #fff; -} - -.hljs-comment, -.hljs-quote, -.hljs-meta { - color: #444; -} - -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-regexp { - color: #ffcc33; -} - -.hljs-number, -.hljs-addition { - color: #00cc66; -} - -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-template-variable, -.hljs-attribute, -.hljs-link { - color: #32aaee; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #6644aa; -} - -.hljs-title, -.hljs-variable, -.hljs-deletion, -.hljs-template-tag { - color: #bb1166; -} - -.hljs-section, -.hljs-doctag, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/ascetic.css b/highlight/styles/ascetic.css deleted file mode 100644 index 48397e889..000000000 --- a/highlight/styles/ascetic.css +++ /dev/null @@ -1,45 +0,0 @@ -/* - -Original style from softwaremaniacs.org (c) Ivan Sagalaev - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: white; - color: black; -} - -.hljs-string, -.hljs-variable, -.hljs-template-variable, -.hljs-symbol, -.hljs-bullet, -.hljs-section, -.hljs-addition, -.hljs-attribute, -.hljs-link { - color: #888; -} - -.hljs-comment, -.hljs-quote, -.hljs-meta, -.hljs-deletion { - color: #ccc; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-section, -.hljs-name, -.hljs-type, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/atelier-cave-dark.css b/highlight/styles/atelier-cave-dark.css deleted file mode 100644 index 65428f3b1..000000000 --- a/highlight/styles/atelier-cave-dark.css +++ /dev/null @@ -1,83 +0,0 @@ -/* Base16 Atelier Cave Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Cave Comment */ -.hljs-comment, -.hljs-quote { - color: #7e7887; -} - -/* Atelier-Cave Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-regexp, -.hljs-link, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #be4678; -} - -/* Atelier-Cave Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #aa573c; -} - -/* Atelier-Cave Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #2a9292; -} - -/* Atelier-Cave Blue */ -.hljs-title, -.hljs-section { - color: #576ddb; -} - -/* Atelier-Cave Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #955ae7; -} - -.hljs-deletion, -.hljs-addition { - color: #19171c; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #be4678; -} - -.hljs-addition { - background-color: #2a9292; -} - -.hljs { - display: block; - overflow-x: auto; - background: #19171c; - color: #8b8792; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-cave-light.css b/highlight/styles/atelier-cave-light.css deleted file mode 100644 index b419f9fd8..000000000 --- a/highlight/styles/atelier-cave-light.css +++ /dev/null @@ -1,85 +0,0 @@ -/* Base16 Atelier Cave Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Cave Comment */ -.hljs-comment, -.hljs-quote { - color: #655f6d; -} - -/* Atelier-Cave Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #be4678; -} - -/* Atelier-Cave Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #aa573c; -} - -/* Atelier-Cave Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #2a9292; -} - -/* Atelier-Cave Blue */ -.hljs-title, -.hljs-section { - color: #576ddb; -} - -/* Atelier-Cave Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #955ae7; -} - -.hljs-deletion, -.hljs-addition { - color: #19171c; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #be4678; -} - -.hljs-addition { - background-color: #2a9292; -} - -.hljs { - display: block; - overflow-x: auto; - background: #efecf4; - color: #585260; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-dune-dark.css b/highlight/styles/atelier-dune-dark.css deleted file mode 100644 index 1684f5225..000000000 --- a/highlight/styles/atelier-dune-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Dune Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Dune Comment */ -.hljs-comment, -.hljs-quote { - color: #999580; -} - -/* Atelier-Dune Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d73737; -} - -/* Atelier-Dune Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b65611; -} - -/* Atelier-Dune Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #60ac39; -} - -/* Atelier-Dune Blue */ -.hljs-title, -.hljs-section { - color: #6684e1; -} - -/* Atelier-Dune Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #b854d4; -} - -.hljs { - display: block; - overflow-x: auto; - background: #20201d; - color: #a6a28c; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-dune-light.css b/highlight/styles/atelier-dune-light.css deleted file mode 100644 index 547719de8..000000000 --- a/highlight/styles/atelier-dune-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Dune Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Dune Comment */ -.hljs-comment, -.hljs-quote { - color: #7d7a68; -} - -/* Atelier-Dune Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d73737; -} - -/* Atelier-Dune Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b65611; -} - -/* Atelier-Dune Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #60ac39; -} - -/* Atelier-Dune Blue */ -.hljs-title, -.hljs-section { - color: #6684e1; -} - -/* Atelier-Dune Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #b854d4; -} - -.hljs { - display: block; - overflow-x: auto; - background: #fefbec; - color: #6e6b5e; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-estuary-dark.css b/highlight/styles/atelier-estuary-dark.css deleted file mode 100644 index a5e507187..000000000 --- a/highlight/styles/atelier-estuary-dark.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Estuary Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Estuary Comment */ -.hljs-comment, -.hljs-quote { - color: #878573; -} - -/* Atelier-Estuary Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ba6236; -} - -/* Atelier-Estuary Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #ae7313; -} - -/* Atelier-Estuary Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #7d9726; -} - -/* Atelier-Estuary Blue */ -.hljs-title, -.hljs-section { - color: #36a166; -} - -/* Atelier-Estuary Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #5f9182; -} - -.hljs-deletion, -.hljs-addition { - color: #22221b; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #ba6236; -} - -.hljs-addition { - background-color: #7d9726; -} - -.hljs { - display: block; - overflow-x: auto; - background: #22221b; - color: #929181; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-estuary-light.css b/highlight/styles/atelier-estuary-light.css deleted file mode 100644 index 1daee5d98..000000000 --- a/highlight/styles/atelier-estuary-light.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Estuary Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Estuary Comment */ -.hljs-comment, -.hljs-quote { - color: #6c6b5a; -} - -/* Atelier-Estuary Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ba6236; -} - -/* Atelier-Estuary Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #ae7313; -} - -/* Atelier-Estuary Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #7d9726; -} - -/* Atelier-Estuary Blue */ -.hljs-title, -.hljs-section { - color: #36a166; -} - -/* Atelier-Estuary Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #5f9182; -} - -.hljs-deletion, -.hljs-addition { - color: #22221b; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #ba6236; -} - -.hljs-addition { - background-color: #7d9726; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f4f3ec; - color: #5f5e4e; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-forest-dark.css b/highlight/styles/atelier-forest-dark.css deleted file mode 100644 index 0ef4fae31..000000000 --- a/highlight/styles/atelier-forest-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Forest Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Forest Comment */ -.hljs-comment, -.hljs-quote { - color: #9c9491; -} - -/* Atelier-Forest Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #f22c40; -} - -/* Atelier-Forest Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #df5320; -} - -/* Atelier-Forest Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #7b9726; -} - -/* Atelier-Forest Blue */ -.hljs-title, -.hljs-section { - color: #407ee7; -} - -/* Atelier-Forest Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6666ea; -} - -.hljs { - display: block; - overflow-x: auto; - background: #1b1918; - color: #a8a19f; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-forest-light.css b/highlight/styles/atelier-forest-light.css deleted file mode 100644 index bbedde18a..000000000 --- a/highlight/styles/atelier-forest-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Forest Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Forest Comment */ -.hljs-comment, -.hljs-quote { - color: #766e6b; -} - -/* Atelier-Forest Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #f22c40; -} - -/* Atelier-Forest Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #df5320; -} - -/* Atelier-Forest Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #7b9726; -} - -/* Atelier-Forest Blue */ -.hljs-title, -.hljs-section { - color: #407ee7; -} - -/* Atelier-Forest Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6666ea; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f1efee; - color: #68615e; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-heath-dark.css b/highlight/styles/atelier-heath-dark.css deleted file mode 100644 index fe01ff721..000000000 --- a/highlight/styles/atelier-heath-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Heath Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Heath Comment */ -.hljs-comment, -.hljs-quote { - color: #9e8f9e; -} - -/* Atelier-Heath Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ca402b; -} - -/* Atelier-Heath Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #a65926; -} - -/* Atelier-Heath Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #918b3b; -} - -/* Atelier-Heath Blue */ -.hljs-title, -.hljs-section { - color: #516aec; -} - -/* Atelier-Heath Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #7b59c0; -} - -.hljs { - display: block; - overflow-x: auto; - background: #1b181b; - color: #ab9bab; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-heath-light.css b/highlight/styles/atelier-heath-light.css deleted file mode 100644 index ee43786d1..000000000 --- a/highlight/styles/atelier-heath-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Heath Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Heath Comment */ -.hljs-comment, -.hljs-quote { - color: #776977; -} - -/* Atelier-Heath Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ca402b; -} - -/* Atelier-Heath Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #a65926; -} - -/* Atelier-Heath Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #918b3b; -} - -/* Atelier-Heath Blue */ -.hljs-title, -.hljs-section { - color: #516aec; -} - -/* Atelier-Heath Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #7b59c0; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f7f3f7; - color: #695d69; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-lakeside-dark.css b/highlight/styles/atelier-lakeside-dark.css deleted file mode 100644 index a937d3bf5..000000000 --- a/highlight/styles/atelier-lakeside-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Lakeside Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Lakeside Comment */ -.hljs-comment, -.hljs-quote { - color: #7195a8; -} - -/* Atelier-Lakeside Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d22d72; -} - -/* Atelier-Lakeside Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #935c25; -} - -/* Atelier-Lakeside Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #568c3b; -} - -/* Atelier-Lakeside Blue */ -.hljs-title, -.hljs-section { - color: #257fad; -} - -/* Atelier-Lakeside Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6b6bb8; -} - -.hljs { - display: block; - overflow-x: auto; - background: #161b1d; - color: #7ea2b4; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-lakeside-light.css b/highlight/styles/atelier-lakeside-light.css deleted file mode 100644 index 6c7e8f9ef..000000000 --- a/highlight/styles/atelier-lakeside-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Lakeside Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Lakeside Comment */ -.hljs-comment, -.hljs-quote { - color: #5a7b8c; -} - -/* Atelier-Lakeside Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d22d72; -} - -/* Atelier-Lakeside Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #935c25; -} - -/* Atelier-Lakeside Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #568c3b; -} - -/* Atelier-Lakeside Blue */ -.hljs-title, -.hljs-section { - color: #257fad; -} - -/* Atelier-Lakeside Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6b6bb8; -} - -.hljs { - display: block; - overflow-x: auto; - background: #ebf8ff; - color: #516d7b; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-plateau-dark.css b/highlight/styles/atelier-plateau-dark.css deleted file mode 100644 index 3bb052693..000000000 --- a/highlight/styles/atelier-plateau-dark.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Plateau Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Plateau Comment */ -.hljs-comment, -.hljs-quote { - color: #7e7777; -} - -/* Atelier-Plateau Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ca4949; -} - -/* Atelier-Plateau Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b45a3c; -} - -/* Atelier-Plateau Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #4b8b8b; -} - -/* Atelier-Plateau Blue */ -.hljs-title, -.hljs-section { - color: #7272ca; -} - -/* Atelier-Plateau Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #8464c4; -} - -.hljs-deletion, -.hljs-addition { - color: #1b1818; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #ca4949; -} - -.hljs-addition { - background-color: #4b8b8b; -} - -.hljs { - display: block; - overflow-x: auto; - background: #1b1818; - color: #8a8585; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-plateau-light.css b/highlight/styles/atelier-plateau-light.css deleted file mode 100644 index 5f0222bec..000000000 --- a/highlight/styles/atelier-plateau-light.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Plateau Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Plateau Comment */ -.hljs-comment, -.hljs-quote { - color: #655d5d; -} - -/* Atelier-Plateau Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ca4949; -} - -/* Atelier-Plateau Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b45a3c; -} - -/* Atelier-Plateau Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #4b8b8b; -} - -/* Atelier-Plateau Blue */ -.hljs-title, -.hljs-section { - color: #7272ca; -} - -/* Atelier-Plateau Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #8464c4; -} - -.hljs-deletion, -.hljs-addition { - color: #1b1818; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #ca4949; -} - -.hljs-addition { - background-color: #4b8b8b; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f4ecec; - color: #585050; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-savanna-dark.css b/highlight/styles/atelier-savanna-dark.css deleted file mode 100644 index 38f831431..000000000 --- a/highlight/styles/atelier-savanna-dark.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Savanna Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Savanna Comment */ -.hljs-comment, -.hljs-quote { - color: #78877d; -} - -/* Atelier-Savanna Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #b16139; -} - -/* Atelier-Savanna Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #9f713c; -} - -/* Atelier-Savanna Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #489963; -} - -/* Atelier-Savanna Blue */ -.hljs-title, -.hljs-section { - color: #478c90; -} - -/* Atelier-Savanna Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #55859b; -} - -.hljs-deletion, -.hljs-addition { - color: #171c19; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #b16139; -} - -.hljs-addition { - background-color: #489963; -} - -.hljs { - display: block; - overflow-x: auto; - background: #171c19; - color: #87928a; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-savanna-light.css b/highlight/styles/atelier-savanna-light.css deleted file mode 100644 index 1ccd7c685..000000000 --- a/highlight/styles/atelier-savanna-light.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Savanna Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Savanna Comment */ -.hljs-comment, -.hljs-quote { - color: #5f6d64; -} - -/* Atelier-Savanna Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #b16139; -} - -/* Atelier-Savanna Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #9f713c; -} - -/* Atelier-Savanna Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #489963; -} - -/* Atelier-Savanna Blue */ -.hljs-title, -.hljs-section { - color: #478c90; -} - -/* Atelier-Savanna Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #55859b; -} - -.hljs-deletion, -.hljs-addition { - color: #171c19; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #b16139; -} - -.hljs-addition { - background-color: #489963; -} - -.hljs { - display: block; - overflow-x: auto; - background: #ecf4ee; - color: #526057; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-seaside-dark.css b/highlight/styles/atelier-seaside-dark.css deleted file mode 100644 index df29949c6..000000000 --- a/highlight/styles/atelier-seaside-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Seaside Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Seaside Comment */ -.hljs-comment, -.hljs-quote { - color: #809980; -} - -/* Atelier-Seaside Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #e6193c; -} - -/* Atelier-Seaside Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #87711d; -} - -/* Atelier-Seaside Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #29a329; -} - -/* Atelier-Seaside Blue */ -.hljs-title, -.hljs-section { - color: #3d62f5; -} - -/* Atelier-Seaside Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #ad2bee; -} - -.hljs { - display: block; - overflow-x: auto; - background: #131513; - color: #8ca68c; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-seaside-light.css b/highlight/styles/atelier-seaside-light.css deleted file mode 100644 index 9d960f29f..000000000 --- a/highlight/styles/atelier-seaside-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Seaside Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Seaside Comment */ -.hljs-comment, -.hljs-quote { - color: #687d68; -} - -/* Atelier-Seaside Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #e6193c; -} - -/* Atelier-Seaside Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #87711d; -} - -/* Atelier-Seaside Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #29a329; -} - -/* Atelier-Seaside Blue */ -.hljs-title, -.hljs-section { - color: #3d62f5; -} - -/* Atelier-Seaside Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #ad2bee; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f4fbf4; - color: #5e6e5e; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-sulphurpool-dark.css b/highlight/styles/atelier-sulphurpool-dark.css deleted file mode 100644 index c2ab7938d..000000000 --- a/highlight/styles/atelier-sulphurpool-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Sulphurpool Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Sulphurpool Comment */ -.hljs-comment, -.hljs-quote { - color: #898ea4; -} - -/* Atelier-Sulphurpool Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #c94922; -} - -/* Atelier-Sulphurpool Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #c76b29; -} - -/* Atelier-Sulphurpool Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #ac9739; -} - -/* Atelier-Sulphurpool Blue */ -.hljs-title, -.hljs-section { - color: #3d8fd1; -} - -/* Atelier-Sulphurpool Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6679cc; -} - -.hljs { - display: block; - overflow-x: auto; - background: #202746; - color: #979db4; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atelier-sulphurpool-light.css b/highlight/styles/atelier-sulphurpool-light.css deleted file mode 100644 index 96c47d086..000000000 --- a/highlight/styles/atelier-sulphurpool-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Sulphurpool Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Sulphurpool Comment */ -.hljs-comment, -.hljs-quote { - color: #6b7394; -} - -/* Atelier-Sulphurpool Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #c94922; -} - -/* Atelier-Sulphurpool Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #c76b29; -} - -/* Atelier-Sulphurpool Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #ac9739; -} - -/* Atelier-Sulphurpool Blue */ -.hljs-title, -.hljs-section { - color: #3d8fd1; -} - -/* Atelier-Sulphurpool Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6679cc; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f5f7ff; - color: #5e6687; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/atom-one-dark.css b/highlight/styles/atom-one-dark.css deleted file mode 100644 index 1616aafe3..000000000 --- a/highlight/styles/atom-one-dark.css +++ /dev/null @@ -1,96 +0,0 @@ -/* - -Atom One Dark by Daniel Gamage -Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax - -base: #282c34 -mono-1: #abb2bf -mono-2: #818896 -mono-3: #5c6370 -hue-1: #56b6c2 -hue-2: #61aeee -hue-3: #c678dd -hue-4: #98c379 -hue-5: #e06c75 -hue-5-2: #be5046 -hue-6: #d19a66 -hue-6-2: #e6c07b - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #abb2bf; - background: #282c34; -} - -.hljs-comment, -.hljs-quote { - color: #5c6370; - font-style: italic; -} - -.hljs-doctag, -.hljs-keyword, -.hljs-formula { - color: #c678dd; -} - -.hljs-section, -.hljs-name, -.hljs-selector-tag, -.hljs-deletion, -.hljs-subst { - color: #e06c75; -} - -.hljs-literal { - color: #56b6c2; -} - -.hljs-string, -.hljs-regexp, -.hljs-addition, -.hljs-attribute, -.hljs-meta-string { - color: #98c379; -} - -.hljs-built_in, -.hljs-class .hljs-title { - color: #e6c07b; -} - -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-type, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-number { - color: #d19a66; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-meta, -.hljs-selector-id, -.hljs-title { - color: #61aeee; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/highlight/styles/atom-one-light.css b/highlight/styles/atom-one-light.css deleted file mode 100644 index d5bd1d2a9..000000000 --- a/highlight/styles/atom-one-light.css +++ /dev/null @@ -1,96 +0,0 @@ -/* - -Atom One Light by Daniel Gamage -Original One Light Syntax theme from https://github.com/atom/one-light-syntax - -base: #fafafa -mono-1: #383a42 -mono-2: #686b77 -mono-3: #a0a1a7 -hue-1: #0184bb -hue-2: #4078f2 -hue-3: #a626a4 -hue-4: #50a14f -hue-5: #e45649 -hue-5-2: #c91243 -hue-6: #986801 -hue-6-2: #c18401 - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #383a42; - background: #fafafa; -} - -.hljs-comment, -.hljs-quote { - color: #a0a1a7; - font-style: italic; -} - -.hljs-doctag, -.hljs-keyword, -.hljs-formula { - color: #a626a4; -} - -.hljs-section, -.hljs-name, -.hljs-selector-tag, -.hljs-deletion, -.hljs-subst { - color: #e45649; -} - -.hljs-literal { - color: #0184bb; -} - -.hljs-string, -.hljs-regexp, -.hljs-addition, -.hljs-attribute, -.hljs-meta-string { - color: #50a14f; -} - -.hljs-built_in, -.hljs-class .hljs-title { - color: #c18401; -} - -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-type, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-number { - color: #986801; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-meta, -.hljs-selector-id, -.hljs-title { - color: #4078f2; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/highlight/styles/brown-paper.css b/highlight/styles/brown-paper.css deleted file mode 100644 index f0197b924..000000000 --- a/highlight/styles/brown-paper.css +++ /dev/null @@ -1,64 +0,0 @@ -/* - -Brown Paper style from goldblog.com.ua (c) Zaripov Yura - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background:#b7a68e url(./brown-papersq.png); -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal { - color:#005599; - font-weight:bold; -} - -.hljs, -.hljs-subst { - color: #363c69; -} - -.hljs-string, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-attribute, -.hljs-symbol, -.hljs-bullet, -.hljs-built_in, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable, -.hljs-link, -.hljs-name { - color: #2c009f; -} - -.hljs-comment, -.hljs-quote, -.hljs-meta, -.hljs-deletion { - color: #802022; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/brown-papersq.png b/highlight/styles/brown-papersq.png deleted file mode 100644 index 3813903dbf9fa7b1fb5bd11d9534c06667d9056f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18198 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
G3S-EN>9CM!{YB*|;6wg-K3V?)eR((z#1 zHyX+Us~H@9)~!8`K-#ZDU>v8HpiaQ|@=VU5MgT@ehzQ(1nZ!M0ZDk{Fb`>pCb0vQE z`gX@ZK}6S!(-($v3w8-+L6Xs~;@WTrR}q42gH9p2ncZYDab8*`#p8jbS&H9$DTx{1 z|8L)r+}X3oIp6b9dN^fZsl0TpRK4NW^TVGZOit8~r*qM+QL3pd7G0|~C`PHxw2PM3 z->n8iEh)LU)Je%r7nEt|D%&F&(={XI*19z_HKI38aE6Cfm-buU7W|=mo3gMA57~g` z7aBx4OS&(O5w@W;2pO@ZVyG;2^F+2cYshx%M2*M@%;(4quYc}>z1WX(9ccb&>8#{j zE=VlFg+&2-xsr%AY_}ciz4+<$^}2TO2e)byPmJl?+aOU7{UVx$=ZNQDTQLxsh}+(_ zak-NBw`v4=+Ydp_L=w^J1&NT$-AbEUuj%8LN7nJzt^APyl$(ght>;(o{)xCqf8IX6 zq`a-CyPq$UOPJN(oo>$gX?v65Y$GnIq7Fq?=??};kY4#Na69k#iG|Wd|{Tt z&uFLgaDQ4)`{9^3rX|Bg zNY8N2w1??HVsq#}Xk&RcmoQBacog;CZ%I-HU?7dT+nZRo?h7BQd5Yrv%sI0rPF^Sk^9@l-_4``bwK!A z5Ud{#8B%fMPHat04G9kj%j5>0maQK}jQTzGC!2<9FicZ-#V^ZaC)A?QK9EelA!nP) z+Z2DqYAqTsfZ9k1CW9+h;Uao59}OnJ9>r}xs&nHlM5^Y58T*TkM80zn8=UE2e8u{j zpH(Cv<_IWBdh<6_f1={d7#R|wGLcIoegMU>82VZLrcn;{FuCmF59Tpu7qQ5TEj5`AFXQxx{XS6|0N# z3g?J^0RDM8_l@3M4G0f^O03>$S#_it3cdG%7HWo_Xb-<{a&XHHzW`(2t54<~-m{AO)J~7AhPI zbkz9A9Eq!7aijhY%^=rG`j6?w^hb13^_LKf!X*}jaV$GaXvsies~+H0T#v%OcveHN zw6t*A@XdVfqJIPsPwPO4;>%M4C+{dTVU{cOk`3puW6b36K2&z%>btSk&&H>Z;<`p> z`FMTMiHw&wOXcQ$-Y{pG@3aN}s_>;# zeQ6GDsqIMA?iz{B1XzIIegeu-#qL_ZBH|eh`L{~J(A{bH*vND8W}io(WZ9s;;m3qZ zElXp!ru)Ht+yJJ|dfvRtcX?~Pn_nW{zZbM5z3mB?Hbf_|+7ZC-9yVjR&7mnNul4vE z%KEK*b1~tReV{kNh2E=&iwgU8w0kYs3c1o6m;*fZfrF-g?1!~+<-`f!Dj8+i7NJUI zcZj}vt?|8iHQ3TdM;gn(X(Vidn!cd{^x{>dX&Vt^`^_3pu?t)#>x|K0cW=egSMl9#+mqq-8|RdMP1Dw zx^5}L#|i6)ERW8LBjm}wD6@3$`!cXl0aV*W>(xz)J2m+v|RNGEXIA%XWv z$Hx$v!@W5LfaU7iEY}no2e;*F&dh{F;<$?``JyH&l3RVjA{xC=Rq{ z6}dLQKK(BW4N!Y)Mzd3h)PX8L3OR6JX82vsk%|<`y{3G<99ycR8(ZD;4@=k|d zx1nPOrARPmMi86c#Qn^1g5RVk00)%LY3fdvDm`_|D|ZP>a4hmnJmTiqc40*eItZ0G z(Cfxe`6oWB{4L&V2-lf)Dz{MkXQ(A{E}?e1cWU;s-J?xBbGBUgebeTI{+k+LT|P=A z;GHDn*981}=hBJAGXPX?iXEu)RoZN2kKn)}Yp)=+)%`(=Hk2z^Csu^a+hNSE9<}O4 zW9BhF843QW<{+N^4NZ(+Ohu0L$qp9AhpJ?UbX8~fibx(>f3CRh|ZH~FPW;%L4 z2Jfb`#^2zr=0rNvM5{6`q6x-M;QJ8B$W1lwJwBT6OTa+L|E?*68NnD-d zqirI@#!DTk6=nvBq1t|F2a57+*JomCoPO&bkNHd&fq@7CoA#=ogI@ER;^g6MTjnNJpU8$17lkcby!fn#Y^cf59qs4;WjW9@I`pu+^=!$XvlzSp zHl-BP6qCLifc*pwQ8vDfUY0lgjC>>zTLL$6VLQBKH2U4M(&?%A718nspPj%tmUBw+ z#X>LH_#p;`9!I5vv6@cVh1b)~bHTXz;!@s>4omWjec#A;((g=Fq_p{u1|<#I-D{h1 zr%{sZ%zv+3T?)s{c78c|r6Ez1kf5OuRJ<^!_`!;|HxG;mZiSf=CdVqy^)Fpf= zR6<3YrraF!c1|tIJ#;9sg<)`+=a+cw8*6)$-yV3w_=*W`MB#~zjz6^LYX4eVoTxdI zc3h_Bc-v+z^z5>e3vEp)brfA?bQ>r1^-8x`-ATBNL)99$& z;rXG-!IBn08OxyuZoj`hcQ)a@7O5;d=o7$6_hSTJ z;(^Dr%6p+QhE473G62?L^T{&S2^UB8^~fFHE0@wP^b_T#h%rn7^=(?yQf+N!)<~#c zB&mh#W%khdZrGJgs@ixb%h?ad2HG&$G8+QXR6zbUk;$(r4F#>F^1>Br!mAfDkRR@D z!K|#|oQjAh)DlY~3|CG`+4@opGIM z^i^Z4rXu>d*NVXngpKKI2U_*K}S3_}=T|7q^w`XB` z2D5mfvT(`vMwh8DGJql?=LI15;DsNI&n^nhYwgI&-{a#V-{;<=cJWiZ5HEkDY(4jD zc2?xCALMIz@)_iwDG(vRJQ8kP7xC8|N5n z-mb8AOpEdA->ZPnh_c<&o3Jg+X;AwynF(`1Ihpp9xt|hy zu7!?dLSahdVg=JpZk#xq{L7i0Y3(N`w+}g zn}vYJKK$VH`HhCBK)g%Cw8flu&$)8+Ef5m{+5}|bRYsP&t~Jk0TLEENO=yT3nrvyfYKk*n#uYjkyI9wC{A(mO8ae&B%;9#dTh)|_V0}&D>^xO(UZ2e z2{_|CZ)7#U(3yWf5i9##7`c79OX{6Y8(moRVE~tW6|XopYg$JLlxm|Q3X{o#=h{Lt zyCavxXR*2;2qGJ^XJ;nKfb^TpVwPUUM{br*(tWeRu{4Id4v!3gY2#K~T^)u_Zer}E zn_7xjY>yK@ouN|9;O0P^ZRT#CcRfGYf%F#Vs;VRb^a|0p^Z(QZ;v z_h#9VcRfJ+!d^?N=4N?P&mP&Il_OwCQMpD;0zHfk@ay$}8TVzgO~mUpV_LitM@Q8z z?9S+w#)-R7Wlo;vsZz9D@#pj>8Cxn}a*?q4(u0!Y^j5C?U$fc+Q?CL`w3ANg?&_1 z?FycB-DhP^mg2^y?@lqA_P>^f{|QRaU~igN=blSkS9CZwMjy&9MHhfv%{2!{eynf` z$pvnj!j!PJ^$UUrQOmKo@@YFMK}y`iI9Na(F-H2m)K^;G@|^OUI0RWuw$|>Zi>>4v zq8|c(foEJT-K`qR-DS&5P&JlKeXe6o?f)$qE9Lfsl2!ik}0GeaVk8W1YV42f9! zrDpRi_q@-CcyuXkqt%*k_=Sc09&?96Tu==56A9)J#}xMwb)PC2fO#x-Caabw>Rn0y z{HI2_IqLYwp=X|p=?Np~=954+Ml?kfMhR7O0xujiI*!b{uTA~|{_q>bBp z=-{T8<|tDq3CTI;lW2D@h@1>&cH*BDa_y{)8j?pQ@ST4-bycb_leaSjIqXOg!I-dI zwNUCuLgX|9CoCb|R&9g{#A6D$#nUq#?A;pr8AdUx?+Mg??0rWBc7w@CmP8$GxdE}e zzHzq~`$CYEEw*mQui5d*E?e~uhB&}WX3EcR8?CKn>HfFzpYY*7uYx^#J!@o8sI_T# z<9>7j4!UEiu=RQ98@44ed!uGToSby}kzEY$x!v2ihKXiyj2);!CRiFr>vI6V7wV&~ zpF$-W<*Q*jZKoda1CDyKwXd4AY%8NW?9?a@Yy}T{I z8l%pzl#*N&hVTtVAK9|*u$h3nx1=6hC?%PgdUH$1 zgU4B#9LvX`-GA_Cqken?Okqp8ZYE~ymacnbL{jExU#!eyp{f&~&7KrUZ(@I$| z*^;qz>W?cO%fU+}`r^A}yw+(=Jny@=CHlQvYr*sZn~Mq?a}U+deU_vMDx=p%_S zeq4>UTvg|Ns%zPo!tKDK1jo!MHXs5k!B@$&Iw30U0NMQkIcpzN?DYb2*ymZtS+0tL z|7ZN81f&h|3Gcxa1-K}FIu}UC&Q5;*yA>^uZA?ny{4)}sFcUL|IrhZMoeaaeLpX1W z;w-j*w2UV02#G(CdabMIPx^&kQ$y&xwe3xF%dn^Zx=-2>R>1)!wONiAju(G&X}wa&e3M9e@y*jUOnq=Da;aeY3U?)V#0wlC4b>zD zYg41RpwFSrtQS5)@i*U(!g@ZK3qpF#ekkwhzv36}MIRhhvDIX_{kvF-w-i!URUy&1 zZ(GVLd13Rxa`n}=54^&rT5t6b{-~*ny>~1i9TpVYZ!wNEQFHytZc3QlVJihZ*&r<0 z+pVZ@C%9pIE7QsXE_Wp;lEw)G|JA?Qr?Kw4JQlq%?zBMH%3 zQ6JVx`e*&{{{B6UR&7EDCoSR>Ia4d+4zz1c4JkkrJzYuTQJ&qreUvcDtG1l9xOB(^ zrc~7sn*MO0arcJ>5^dNJY0Dd`dhvNp0zvzsHa0TO=<$99GqoAfRNXiNXf(!*IEnmP zr8tbeCb^b*$m_VvC6g&*bjtGqCpo-Ox`{)A5lw;yGH&b+sGu3`p#9`TQsPue)fUR< z&`V+$NVA8gzWIS^yrU#20h!!^9m?LW?#vpgS2M(T!&ts|UtGu)ibm12hjYQH3>Qh9 z&4Gq1i{aI05C~XPmovUh_g2b!EvwQ{JyK_xNk>x&ulaux-hYGOKQD&wmOXCwH|wi# z>ZA;Hh-sqvZJyfmPTTsim;OTNb>l5w$r>9)Wr+8Y$ptx_kA@kv@KugIc@7s51}<>$GYQ56)Ki`;R>$*#5fm%=a3oHXA{2r ze(gE^q7@6M#NOKDk?lQ!5v+|OS})<3Q$-XinH=iC%oZ$K*8mR&EYajonfKIB3qJw` zEh)zGw95_xD1yBg7v#8+sMaF^CW02x=1c30XZN3`1|S3xsHPU&%AtideyTVxW^pmN zC+CEKwcWLdiPK%WA><$Zk_5~1-n5;YlQ3aqhz90Q0Xyfxt(2@|0?VzodBvU=`;yT2 z97iv%rVlOZAzEh~-1FWqO$aNkyaLq>*<|?mOs(GR3FT392W{moZ;HD&I)GzNjoj|$ z6#h>D!~{G0fG#7m_{NwN;WBo+FBYH&u^ak!z=N*W+uPe4om4A>NYVy$G_k2Ag|NAO z1wvW{1B!~LGZRF@(ZG@sG?88UFOlrO7R5%3$!Z0a^39~K+xO1U`7jU^5z(@hy;s>te8_ua9x0Q zn(l}+Nj+K~g&_``wy#um;Qzq?f&T;l2mTNIANW7;|84Ov|JCpRS8NUz9_W9coCNv_ z?xl52VVa7r#b5F5PRa<1$EH=S_IdUhr^0@&t!&FBRvJ)_Pg&>TFXt z;Him`;9z20Fs(B_&VW(!)c3M{jzBor(F1Dq}caD#skevw=^xy`W{jSaVH-|RF^ zSxJ<1s$c_lG4y9pCj12Kt805nHipE(fmI(remtK}i2v8umpU5=fE&6Kz!tKfD5{zY zco!fp1V_e}JZR%cv(4G}(kNtwr>75|O)au*I`|}b#FsjqhIe!NJ-zeaOcKF`RqzgX zM*JenjN>g8sc(CV9npdUo7l-3T~TbOt`ob-!+y>EHiCg>^;n^+rmplETdVk@A`cVT zA1`NM{`03FQ?x4Ad8O#s9fGCv7?9O}iuG`+X$PzYMAI#+5>jAk1=DDL4Zw~OY#s>1 zQelFQX}adIQepTSq~Q#Jb(w>Y{qR)gW)Aw04L6*=W|uYVCY8oiUWoVZpBMokVRv`n z|G@u&{{#OA{tx^g_&@OfZSgOE^Xp%o&t1c5t;L4bTyJavWpxv!`N2~II|QWnuI)Ob zYv3~hzdJ|?XBxHj0LyR7#yX)CPY)MQMfjp;JB;mJUhwT5L@?^+5I~?-#K5{H_o>s$tlw9%!2JAO% zwPewi-QXC{!xhKIj#2sjTTl)0}n}@N`7N{W=1DLw7kpe!!Zsa-=pa8*m(NH%XbHdb1Xf#@^W+ z0!Yl(Z&WF*q+t}rJ+X~J$AAkhsNVDQV?(l=i7Q)eikH_fxBDBC;`#gl3*YY74ymO- zu^WR8?-b)qS)xc+#&MP};#uWZXjqxtS8$~83O9k&BTMF?%87MjbR|K3ytK zDO-8yV;5vhR^p`+p+(ZmL}s%bYB1U6cA4RPB%6{$xxo07C&85m{tx^g_&@M};Qzq? jf&T;l-xmM>p8x{@D(Mktb)u`N00000NkvXXu0mjf(?NUb diff --git a/highlight/styles/codepen-embed.css b/highlight/styles/codepen-embed.css deleted file mode 100644 index 195c4a078..000000000 --- a/highlight/styles/codepen-embed.css +++ /dev/null @@ -1,60 +0,0 @@ -/* - codepen.io Embed Theme - Author: Justin Perry - Original theme - https://github.com/chriskempson/tomorrow-theme -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #222; - color: #fff; -} - -.hljs-comment, -.hljs-quote { - color: #777; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-regexp, -.hljs-meta, -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-params, -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-deletion { - color: #ab875d; -} - -.hljs-section, -.hljs-title, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-type, -.hljs-attribute { - color: #9b869b; -} - -.hljs-string, -.hljs-keyword, -.hljs-selector-tag, -.hljs-addition { - color: #8f9c6c; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/color-brewer.css b/highlight/styles/color-brewer.css deleted file mode 100644 index 7934d986a..000000000 --- a/highlight/styles/color-brewer.css +++ /dev/null @@ -1,71 +0,0 @@ -/* - -Colorbrewer theme -Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock -Ported by Fabrício Tavares de Oliveira - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fff; -} - -.hljs, -.hljs-subst { - color: #000; -} - -.hljs-string, -.hljs-meta, -.hljs-symbol, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition { - color: #756bb1; -} - -.hljs-comment, -.hljs-quote { - color: #636363; -} - -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-bullet, -.hljs-link { - color: #31a354; -} - -.hljs-deletion, -.hljs-variable { - color: #88f; -} - - - -.hljs-keyword, -.hljs-selector-tag, -.hljs-title, -.hljs-section, -.hljs-built_in, -.hljs-doctag, -.hljs-type, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-strong { - color: #3182bd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-attribute { - color: #e6550d; -} diff --git a/highlight/styles/darcula.css b/highlight/styles/darcula.css deleted file mode 100644 index be182d0b5..000000000 --- a/highlight/styles/darcula.css +++ /dev/null @@ -1,77 +0,0 @@ -/* - -Darcula color scheme from the JetBrains family of IDEs - -*/ - - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #2b2b2b; -} - -.hljs { - color: #bababa; -} - -.hljs-strong, -.hljs-emphasis { - color: #a8a8a2; -} - -.hljs-bullet, -.hljs-quote, -.hljs-link, -.hljs-number, -.hljs-regexp, -.hljs-literal { - color: #6896ba; -} - -.hljs-code, -.hljs-selector-class { - color: #a6e22e; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-section, -.hljs-attribute, -.hljs-name, -.hljs-variable { - color: #cb7832; -} - -.hljs-params { - color: #b9b9b9; -} - -.hljs-string { - color: #6a8759; -} - -.hljs-subst, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-symbol, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition { - color: #e0c46c; -} - -.hljs-comment, -.hljs-deletion, -.hljs-meta { - color: #7f7f7f; -} diff --git a/highlight/styles/dark.css b/highlight/styles/dark.css deleted file mode 100644 index b4724f5f5..000000000 --- a/highlight/styles/dark.css +++ /dev/null @@ -1,63 +0,0 @@ -/* - -Dark style from softwaremaniacs.org (c) Ivan Sagalaev - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #444; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-section, -.hljs-link { - color: white; -} - -.hljs, -.hljs-subst { - color: #ddd; -} - -.hljs-string, -.hljs-title, -.hljs-name, -.hljs-type, -.hljs-attribute, -.hljs-symbol, -.hljs-bullet, -.hljs-built_in, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #d88; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion, -.hljs-meta { - color: #777; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-title, -.hljs-section, -.hljs-doctag, -.hljs-type, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/darkula.css b/highlight/styles/darkula.css deleted file mode 100644 index f4646c3c5..000000000 --- a/highlight/styles/darkula.css +++ /dev/null @@ -1,6 +0,0 @@ -/* - Deprecated due to a typo in the name and left here for compatibility purpose only. - Please use darcula.css instead. -*/ - -@import url('darcula.css'); diff --git a/highlight/styles/default.css b/highlight/styles/default.css deleted file mode 100644 index f1bfade31..000000000 --- a/highlight/styles/default.css +++ /dev/null @@ -1,99 +0,0 @@ -/* - -Original highlight.js style (c) Ivan Sagalaev - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #F0F0F0; -} - - -/* Base color: saturation 0; */ - -.hljs, -.hljs-subst { - color: #444; -} - -.hljs-comment { - color: #888888; -} - -.hljs-keyword, -.hljs-attribute, -.hljs-selector-tag, -.hljs-meta-keyword, -.hljs-doctag, -.hljs-name { - font-weight: bold; -} - - -/* User color: hue: 0 */ - -.hljs-type, -.hljs-string, -.hljs-number, -.hljs-selector-id, -.hljs-selector-class, -.hljs-quote, -.hljs-template-tag, -.hljs-deletion { - color: #880000; -} - -.hljs-title, -.hljs-section { - color: #880000; - font-weight: bold; -} - -.hljs-regexp, -.hljs-symbol, -.hljs-variable, -.hljs-template-variable, -.hljs-link, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #BC6060; -} - - -/* Language color: hue: 90; */ - -.hljs-literal { - color: #78A960; -} - -.hljs-built_in, -.hljs-bullet, -.hljs-code, -.hljs-addition { - color: #397300; -} - - -/* Meta color: hue: 200 */ - -.hljs-meta { - color: #1f7199; -} - -.hljs-meta-string { - color: #4d99bf; -} - - -/* Misc effects */ - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/docco.css b/highlight/styles/docco.css deleted file mode 100644 index db366be37..000000000 --- a/highlight/styles/docco.css +++ /dev/null @@ -1,97 +0,0 @@ -/* -Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #000; - background: #f8f8ff; -} - -.hljs-comment, -.hljs-quote { - color: #408080; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-subst { - color: #954121; -} - -.hljs-number { - color: #40a070; -} - -.hljs-string, -.hljs-doctag { - color: #219161; -} - -.hljs-selector-id, -.hljs-selector-class, -.hljs-section, -.hljs-type { - color: #19469d; -} - -.hljs-params { - color: #00f; -} - -.hljs-title { - color: #458; - font-weight: bold; -} - -.hljs-tag, -.hljs-name, -.hljs-attribute { - color: #000080; - font-weight: normal; -} - -.hljs-variable, -.hljs-template-variable { - color: #008080; -} - -.hljs-regexp, -.hljs-link { - color: #b68; -} - -.hljs-symbol, -.hljs-bullet { - color: #990073; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #0086b3; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - background: #fdd; -} - -.hljs-addition { - background: #dfd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/dracula.css b/highlight/styles/dracula.css deleted file mode 100644 index d591db680..000000000 --- a/highlight/styles/dracula.css +++ /dev/null @@ -1,76 +0,0 @@ -/* - -Dracula Theme v1.2.0 - -https://github.com/zenorocha/dracula-theme - -Copyright 2015, All rights reserved - -Code licensed under the MIT license -http://zenorocha.mit-license.org - -@author Éverton Ribeiro -@author Zeno Rocha - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #282a36; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-section, -.hljs-link { - color: #8be9fd; -} - -.hljs-function .hljs-keyword { - color: #ff79c6; -} - -.hljs, -.hljs-subst { - color: #f8f8f2; -} - -.hljs-string, -.hljs-title, -.hljs-name, -.hljs-type, -.hljs-attribute, -.hljs-symbol, -.hljs-bullet, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #f1fa8c; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion, -.hljs-meta { - color: #6272a4; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-title, -.hljs-section, -.hljs-doctag, -.hljs-type, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/far.css b/highlight/styles/far.css deleted file mode 100644 index 2b3f87b56..000000000 --- a/highlight/styles/far.css +++ /dev/null @@ -1,71 +0,0 @@ -/* - -FAR Style (c) MajestiC - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #000080; -} - -.hljs, -.hljs-subst { - color: #0ff; -} - -.hljs-string, -.hljs-attribute, -.hljs-symbol, -.hljs-bullet, -.hljs-built_in, -.hljs-builtin-name, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition { - color: #ff0; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-section, -.hljs-type, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-variable { - color: #fff; -} - -.hljs-comment, -.hljs-quote, -.hljs-doctag, -.hljs-deletion { - color: #888; -} - -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-link { - color: #0f0; -} - -.hljs-meta { - color: #008080; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-title, -.hljs-section, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/foundation.css b/highlight/styles/foundation.css deleted file mode 100644 index f1fe64b37..000000000 --- a/highlight/styles/foundation.css +++ /dev/null @@ -1,88 +0,0 @@ -/* -Description: Foundation 4 docs style for highlight.js -Author: Dan Allen -Website: http://foundation.zurb.com/docs/ -Version: 1.0 -Date: 2013-04-02 -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #eee; color: black; -} - -.hljs-link, -.hljs-emphasis, -.hljs-attribute, -.hljs-addition { - color: #070; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong, -.hljs-string, -.hljs-deletion { - color: #d14; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-quote, -.hljs-comment { - color: #998; - font-style: italic; -} - -.hljs-section, -.hljs-title { - color: #900; -} - -.hljs-class .hljs-title, -.hljs-type { - color: #458; -} - -.hljs-variable, -.hljs-template-variable { - color: #336699; -} - -.hljs-bullet { - color: #997700; -} - -.hljs-meta { - color: #3344bb; -} - -.hljs-code, -.hljs-number, -.hljs-literal, -.hljs-keyword, -.hljs-selector-tag { - color: #099; -} - -.hljs-regexp { - background-color: #fff0ff; - color: #880088; -} - -.hljs-symbol { - color: #990073; -} - -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #007700; -} diff --git a/highlight/styles/github-gist.css b/highlight/styles/github-gist.css deleted file mode 100644 index 155f0b916..000000000 --- a/highlight/styles/github-gist.css +++ /dev/null @@ -1,71 +0,0 @@ -/** - * GitHub Gist Theme - * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro - */ - -.hljs { - display: block; - background: white; - padding: 0.5em; - color: #333333; - overflow-x: auto; -} - -.hljs-comment, -.hljs-meta { - color: #969896; -} - -.hljs-string, -.hljs-variable, -.hljs-template-variable, -.hljs-strong, -.hljs-emphasis, -.hljs-quote { - color: #df5000; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-type { - color: #a71d5d; -} - -.hljs-literal, -.hljs-symbol, -.hljs-bullet, -.hljs-attribute { - color: #0086b3; -} - -.hljs-section, -.hljs-name { - color: #63a35c; -} - -.hljs-tag { - color: #333333; -} - -.hljs-title, -.hljs-attr, -.hljs-selector-id, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #795da3; -} - -.hljs-addition { - color: #55a532; - background-color: #eaffea; -} - -.hljs-deletion { - color: #bd2c00; - background-color: #ffecec; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/highlight/styles/github.css b/highlight/styles/github.css deleted file mode 100644 index 791932b87..000000000 --- a/highlight/styles/github.css +++ /dev/null @@ -1,99 +0,0 @@ -/* - -github.com style (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #333; - background: #f8f8f8; -} - -.hljs-comment, -.hljs-quote { - color: #998; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-subst { - color: #333; - font-weight: bold; -} - -.hljs-number, -.hljs-literal, -.hljs-variable, -.hljs-template-variable, -.hljs-tag .hljs-attr { - color: #008080; -} - -.hljs-string, -.hljs-doctag { - color: #d14; -} - -.hljs-title, -.hljs-section, -.hljs-selector-id { - color: #900; - font-weight: bold; -} - -.hljs-subst { - font-weight: normal; -} - -.hljs-type, -.hljs-class .hljs-title { - color: #458; - font-weight: bold; -} - -.hljs-tag, -.hljs-name, -.hljs-attribute { - color: #000080; - font-weight: normal; -} - -.hljs-regexp, -.hljs-link { - color: #009926; -} - -.hljs-symbol, -.hljs-bullet { - color: #990073; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #0086b3; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - background: #fdd; -} - -.hljs-addition { - background: #dfd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/googlecode.css b/highlight/styles/googlecode.css deleted file mode 100644 index 884ad6353..000000000 --- a/highlight/styles/googlecode.css +++ /dev/null @@ -1,89 +0,0 @@ -/* - -Google Code style (c) Aahan Krish - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: white; - color: black; -} - -.hljs-comment, -.hljs-quote { - color: #800; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-section, -.hljs-title, -.hljs-name { - color: #008; -} - -.hljs-variable, -.hljs-template-variable { - color: #660; -} - -.hljs-string, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-regexp { - color: #080; -} - -.hljs-literal, -.hljs-symbol, -.hljs-bullet, -.hljs-meta, -.hljs-number, -.hljs-link { - color: #066; -} - -.hljs-title, -.hljs-doctag, -.hljs-type, -.hljs-attr, -.hljs-built_in, -.hljs-builtin-name, -.hljs-params { - color: #606; -} - -.hljs-attribute, -.hljs-subst { - color: #000; -} - -.hljs-formula { - background-color: #eee; - font-style: italic; -} - -.hljs-selector-id, -.hljs-selector-class { - color: #9B703F -} - -.hljs-addition { - background-color: #baeeba; -} - -.hljs-deletion { - background-color: #ffc8bd; -} - -.hljs-doctag, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/grayscale.css b/highlight/styles/grayscale.css deleted file mode 100644 index 5376f3406..000000000 --- a/highlight/styles/grayscale.css +++ /dev/null @@ -1,101 +0,0 @@ -/* - -grayscale style (c) MY Sun - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #333; - background: #fff; -} - -.hljs-comment, -.hljs-quote { - color: #777; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-subst { - color: #333; - font-weight: bold; -} - -.hljs-number, -.hljs-literal { - color: #777; -} - -.hljs-string, -.hljs-doctag, -.hljs-formula { - color: #333; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat; -} - -.hljs-title, -.hljs-section, -.hljs-selector-id { - color: #000; - font-weight: bold; -} - -.hljs-subst { - font-weight: normal; -} - -.hljs-class .hljs-title, -.hljs-type, -.hljs-name { - color: #333; - font-weight: bold; -} - -.hljs-tag { - color: #333; -} - -.hljs-regexp { - color: #333; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link { - color: #000; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #000; - text-decoration: underline; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - color: #fff; - background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat; -} - -.hljs-addition { - color: #000; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/gruvbox-dark.css b/highlight/styles/gruvbox-dark.css deleted file mode 100644 index f563811a8..000000000 --- a/highlight/styles/gruvbox-dark.css +++ /dev/null @@ -1,108 +0,0 @@ -/* - -Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #282828; -} - -.hljs, -.hljs-subst { - color: #ebdbb2; -} - -/* Gruvbox Red */ -.hljs-deletion, -.hljs-formula, -.hljs-keyword, -.hljs-link, -.hljs-selector-tag { - color: #fb4934; -} - -/* Gruvbox Blue */ -.hljs-built_in, -.hljs-emphasis, -.hljs-name, -.hljs-quote, -.hljs-strong, -.hljs-title, -.hljs-variable { - color: #83a598; -} - -/* Gruvbox Yellow */ -.hljs-attr, -.hljs-params, -.hljs-template-tag, -.hljs-type { - color: #fabd2f; -} - -/* Gruvbox Purple */ -.hljs-builtin-name, -.hljs-doctag, -.hljs-literal, -.hljs-number { - color: #8f3f71; -} - -/* Gruvbox Orange */ -.hljs-code, -.hljs-meta, -.hljs-regexp, -.hljs-selector-id, -.hljs-template-variable { - color: #fe8019; -} - -/* Gruvbox Green */ -.hljs-addition, -.hljs-meta-string, -.hljs-section, -.hljs-selector-attr, -.hljs-selector-class, -.hljs-string, -.hljs-symbol { - color: #b8bb26; -} - -/* Gruvbox Aqua */ -.hljs-attribute, -.hljs-bullet, -.hljs-class, -.hljs-function, -.hljs-function .hljs-keyword, -.hljs-meta-keyword, -.hljs-selector-pseudo, -.hljs-tag { - color: #8ec07c; -} - -/* Gruvbox Gray */ -.hljs-comment { - color: #928374; -} - -/* Gruvbox Purple */ -.hljs-link_label, -.hljs-literal, -.hljs-number { - color: #d3869b; -} - -.hljs-comment, -.hljs-emphasis { - font-style: italic; -} - -.hljs-section, -.hljs-strong, -.hljs-tag { - font-weight: bold; -} diff --git a/highlight/styles/gruvbox-light.css b/highlight/styles/gruvbox-light.css deleted file mode 100644 index ff45468eb..000000000 --- a/highlight/styles/gruvbox-light.css +++ /dev/null @@ -1,108 +0,0 @@ -/* - -Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fbf1c7; -} - -.hljs, -.hljs-subst { - color: #3c3836; -} - -/* Gruvbox Red */ -.hljs-deletion, -.hljs-formula, -.hljs-keyword, -.hljs-link, -.hljs-selector-tag { - color: #9d0006; -} - -/* Gruvbox Blue */ -.hljs-built_in, -.hljs-emphasis, -.hljs-name, -.hljs-quote, -.hljs-strong, -.hljs-title, -.hljs-variable { - color: #076678; -} - -/* Gruvbox Yellow */ -.hljs-attr, -.hljs-params, -.hljs-template-tag, -.hljs-type { - color: #b57614; -} - -/* Gruvbox Purple */ -.hljs-builtin-name, -.hljs-doctag, -.hljs-literal, -.hljs-number { - color: #8f3f71; -} - -/* Gruvbox Orange */ -.hljs-code, -.hljs-meta, -.hljs-regexp, -.hljs-selector-id, -.hljs-template-variable { - color: #af3a03; -} - -/* Gruvbox Green */ -.hljs-addition, -.hljs-meta-string, -.hljs-section, -.hljs-selector-attr, -.hljs-selector-class, -.hljs-string, -.hljs-symbol { - color: #79740e; -} - -/* Gruvbox Aqua */ -.hljs-attribute, -.hljs-bullet, -.hljs-class, -.hljs-function, -.hljs-function .hljs-keyword, -.hljs-meta-keyword, -.hljs-selector-pseudo, -.hljs-tag { - color: #427b58; -} - -/* Gruvbox Gray */ -.hljs-comment { - color: #928374; -} - -/* Gruvbox Purple */ -.hljs-link_label, -.hljs-literal, -.hljs-number { - color: #8f3f71; -} - -.hljs-comment, -.hljs-emphasis { - font-style: italic; -} - -.hljs-section, -.hljs-strong, -.hljs-tag { - font-weight: bold; -} diff --git a/highlight/styles/hopscotch.css b/highlight/styles/hopscotch.css deleted file mode 100644 index 32e60d230..000000000 --- a/highlight/styles/hopscotch.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Hopscotch - * by Jan T. Sott - * https://github.com/idleberg/Hopscotch - * - * This work is licensed under the Creative Commons CC0 1.0 Universal License - */ - -/* Comment */ -.hljs-comment, -.hljs-quote { - color: #989498; -} - -/* Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-link, -.hljs-deletion { - color: #dd464c; -} - -/* Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #fd8b19; -} - -/* Yellow */ -.hljs-class .hljs-title { - color: #fdcc59; -} - -/* Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #8fc13e; -} - -/* Aqua */ -.hljs-meta { - color: #149b93; -} - -/* Blue */ -.hljs-function, -.hljs-section, -.hljs-title { - color: #1290bf; -} - -/* Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #c85e7c; -} - -.hljs { - display: block; - background: #322931; - color: #b9b5b8; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/hybrid.css b/highlight/styles/hybrid.css deleted file mode 100644 index 29735a189..000000000 --- a/highlight/styles/hybrid.css +++ /dev/null @@ -1,102 +0,0 @@ -/* - -vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) - -*/ - -/*background color*/ -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #1d1f21; -} - -/*selection color*/ -.hljs::selection, -.hljs span::selection { - background: #373b41; -} - -.hljs::-moz-selection, -.hljs span::-moz-selection { - background: #373b41; -} - -/*foreground color*/ -.hljs { - color: #c5c8c6; -} - -/*color: fg_yellow*/ -.hljs-title, -.hljs-name { - color: #f0c674; -} - -/*color: fg_comment*/ -.hljs-comment, -.hljs-meta, -.hljs-meta .hljs-keyword { - color: #707880; -} - -/*color: fg_red*/ -.hljs-number, -.hljs-symbol, -.hljs-literal, -.hljs-deletion, -.hljs-link { - color: #cc6666 -} - -/*color: fg_green*/ -.hljs-string, -.hljs-doctag, -.hljs-addition, -.hljs-regexp, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #b5bd68; -} - -/*color: fg_purple*/ -.hljs-attribute, -.hljs-code, -.hljs-selector-id { - color: #b294bb; -} - -/*color: fg_blue*/ -.hljs-keyword, -.hljs-selector-tag, -.hljs-bullet, -.hljs-tag { - color: #81a2be; -} - -/*color: fg_aqua*/ -.hljs-subst, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #8abeb7; -} - -/*color: fg_orange*/ -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-quote, -.hljs-section, -.hljs-selector-class { - color: #de935f; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/idea.css b/highlight/styles/idea.css deleted file mode 100644 index 3bf1892bd..000000000 --- a/highlight/styles/idea.css +++ /dev/null @@ -1,97 +0,0 @@ -/* - -Intellij Idea-like styling (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #000; - background: #fff; -} - -.hljs-subst, -.hljs-title { - font-weight: normal; - color: #000; -} - -.hljs-comment, -.hljs-quote { - color: #808080; - font-style: italic; -} - -.hljs-meta { - color: #808000; -} - -.hljs-tag { - background: #efefef; -} - -.hljs-section, -.hljs-name, -.hljs-literal, -.hljs-keyword, -.hljs-selector-tag, -.hljs-type, -.hljs-selector-id, -.hljs-selector-class { - font-weight: bold; - color: #000080; -} - -.hljs-attribute, -.hljs-number, -.hljs-regexp, -.hljs-link { - font-weight: bold; - color: #0000ff; -} - -.hljs-number, -.hljs-regexp, -.hljs-link { - font-weight: normal; -} - -.hljs-string { - color: #008000; - font-weight: bold; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-formula { - color: #000; - background: #d0eded; - font-style: italic; -} - -.hljs-doctag { - text-decoration: underline; -} - -.hljs-variable, -.hljs-template-variable { - color: #660e7a; -} - -.hljs-addition { - background: #baeeba; -} - -.hljs-deletion { - background: #ffc8bd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/ir-black.css b/highlight/styles/ir-black.css deleted file mode 100644 index bd4c755ed..000000000 --- a/highlight/styles/ir-black.css +++ /dev/null @@ -1,73 +0,0 @@ -/* - IR_Black style (c) Vasily Mikhailitchenko -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #000; - color: #f8f8f8; -} - -.hljs-comment, -.hljs-quote, -.hljs-meta { - color: #7c7c7c; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-tag, -.hljs-name { - color: #96cbfe; -} - -.hljs-attribute, -.hljs-selector-id { - color: #ffffb6; -} - -.hljs-string, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition { - color: #a8ff60; -} - -.hljs-subst { - color: #daefa3; -} - -.hljs-regexp, -.hljs-link { - color: #e9c062; -} - -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-doctag { - color: #ffffb6; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-variable, -.hljs-template-variable, -.hljs-literal { - color: #c6c5fe; -} - -.hljs-number, -.hljs-deletion { - color:#ff73fd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/kimbie.dark.css b/highlight/styles/kimbie.dark.css deleted file mode 100644 index d139cb5d0..000000000 --- a/highlight/styles/kimbie.dark.css +++ /dev/null @@ -1,74 +0,0 @@ -/* - Name: Kimbie (dark) - Author: Jan T. Sott - License: Creative Commons Attribution-ShareAlike 4.0 Unported License - URL: https://github.com/idleberg/Kimbie-highlight.js -*/ - -/* Kimbie Comment */ -.hljs-comment, -.hljs-quote { - color: #d6baad; -} - -/* Kimbie Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-meta { - color: #dc3958; -} - -/* Kimbie Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-deletion, -.hljs-link { - color: #f79a32; -} - -/* Kimbie Yellow */ -.hljs-title, -.hljs-section, -.hljs-attribute { - color: #f06431; -} - -/* Kimbie Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #889b4a; -} - -/* Kimbie Purple */ -.hljs-keyword, -.hljs-selector-tag, -.hljs-function { - color: #98676a; -} - -.hljs { - display: block; - overflow-x: auto; - background: #221a0f; - color: #d3af86; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/kimbie.light.css b/highlight/styles/kimbie.light.css deleted file mode 100644 index 04ff6ed3a..000000000 --- a/highlight/styles/kimbie.light.css +++ /dev/null @@ -1,74 +0,0 @@ -/* - Name: Kimbie (light) - Author: Jan T. Sott - License: Creative Commons Attribution-ShareAlike 4.0 Unported License - URL: https://github.com/idleberg/Kimbie-highlight.js -*/ - -/* Kimbie Comment */ -.hljs-comment, -.hljs-quote { - color: #a57a4c; -} - -/* Kimbie Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-meta { - color: #dc3958; -} - -/* Kimbie Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-deletion, -.hljs-link { - color: #f79a32; -} - -/* Kimbie Yellow */ -.hljs-title, -.hljs-section, -.hljs-attribute { - color: #f06431; -} - -/* Kimbie Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #889b4a; -} - -/* Kimbie Purple */ -.hljs-keyword, -.hljs-selector-tag, -.hljs-function { - color: #98676a; -} - -.hljs { - display: block; - overflow-x: auto; - background: #fbebd4; - color: #84613d; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/magula.css b/highlight/styles/magula.css deleted file mode 100644 index 44dee5e8e..000000000 --- a/highlight/styles/magula.css +++ /dev/null @@ -1,70 +0,0 @@ -/* -Description: Magula style for highligh.js -Author: Ruslan Keba -Website: http://rukeba.com/ -Version: 1.0 -Date: 2009-01-03 -Music: Aphex Twin / Xtal -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background-color: #f4f4f4; -} - -.hljs, -.hljs-subst { - color: black; -} - -.hljs-string, -.hljs-title, -.hljs-symbol, -.hljs-bullet, -.hljs-attribute, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #050; -} - -.hljs-comment, -.hljs-quote { - color: #777; -} - -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-type, -.hljs-link { - color: #800; -} - -.hljs-deletion, -.hljs-meta { - color: #00e; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-built_in, -.hljs-tag, -.hljs-name { - font-weight: bold; - color: navy; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/mono-blue.css b/highlight/styles/mono-blue.css deleted file mode 100644 index 884c97c76..000000000 --- a/highlight/styles/mono-blue.css +++ /dev/null @@ -1,59 +0,0 @@ -/* - Five-color theme from a single blue hue. -*/ -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #eaeef3; -} - -.hljs { - color: #00193a; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-title, -.hljs-section, -.hljs-doctag, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-comment { - color: #738191; -} - -.hljs-string, -.hljs-title, -.hljs-section, -.hljs-built_in, -.hljs-literal, -.hljs-type, -.hljs-addition, -.hljs-tag, -.hljs-quote, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #0048ab; -} - -.hljs-meta, -.hljs-subst, -.hljs-symbol, -.hljs-regexp, -.hljs-attribute, -.hljs-deletion, -.hljs-variable, -.hljs-template-variable, -.hljs-link, -.hljs-bullet { - color: #4c81c9; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/monokai-sublime.css b/highlight/styles/monokai-sublime.css deleted file mode 100644 index 2864170da..000000000 --- a/highlight/styles/monokai-sublime.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - -Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #23241f; -} - -.hljs, -.hljs-tag, -.hljs-subst { - color: #f8f8f2; -} - -.hljs-strong, -.hljs-emphasis { - color: #a8a8a2; -} - -.hljs-bullet, -.hljs-quote, -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-link { - color: #ae81ff; -} - -.hljs-code, -.hljs-title, -.hljs-section, -.hljs-selector-class { - color: #a6e22e; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-name, -.hljs-attr { - color: #f92672; -} - -.hljs-symbol, -.hljs-attribute { - color: #66d9ef; -} - -.hljs-params, -.hljs-class .hljs-title { - color: #f8f8f2; -} - -.hljs-string, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition, -.hljs-variable, -.hljs-template-variable { - color: #e6db74; -} - -.hljs-comment, -.hljs-deletion, -.hljs-meta { - color: #75715e; -} diff --git a/highlight/styles/monokai.css b/highlight/styles/monokai.css deleted file mode 100644 index 775d53f91..000000000 --- a/highlight/styles/monokai.css +++ /dev/null @@ -1,70 +0,0 @@ -/* -Monokai style - ported by Luigi Maselli - http://grigio.org -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #272822; color: #ddd; -} - -.hljs-tag, -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-strong, -.hljs-name { - color: #f92672; -} - -.hljs-code { - color: #66d9ef; -} - -.hljs-class .hljs-title { - color: white; -} - -.hljs-attribute, -.hljs-symbol, -.hljs-regexp, -.hljs-link { - color: #bf79db; -} - -.hljs-string, -.hljs-bullet, -.hljs-subst, -.hljs-title, -.hljs-section, -.hljs-emphasis, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #a6e22e; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion, -.hljs-meta { - color: #75715e; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-selector-id { - font-weight: bold; -} diff --git a/highlight/styles/obsidian.css b/highlight/styles/obsidian.css deleted file mode 100644 index 356630fa2..000000000 --- a/highlight/styles/obsidian.css +++ /dev/null @@ -1,88 +0,0 @@ -/** - * Obsidian style - * ported by Alexander Marenin (http://github.com/ioncreature) - */ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #282b2e; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-selector-id { - color: #93c763; -} - -.hljs-number { - color: #ffcd22; -} - -.hljs { - color: #e0e2e4; -} - -.hljs-attribute { - color: #668bb0; -} - -.hljs-code, -.hljs-class .hljs-title, -.hljs-section { - color: white; -} - -.hljs-regexp, -.hljs-link { - color: #d39745; -} - -.hljs-meta { - color: #557182; -} - -.hljs-tag, -.hljs-name, -.hljs-bullet, -.hljs-subst, -.hljs-emphasis, -.hljs-type, -.hljs-built_in, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #8cbbad; -} - -.hljs-string, -.hljs-symbol { - color: #ec7600; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion { - color: #818e96; -} - -.hljs-selector-class { - color: #A082BD -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-name, -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/ocean.css b/highlight/styles/ocean.css deleted file mode 100644 index 5901581b4..000000000 --- a/highlight/styles/ocean.css +++ /dev/null @@ -1,74 +0,0 @@ -/* Ocean Dark Theme */ -/* https://github.com/gavsiu */ -/* Original theme - https://github.com/chriskempson/base16 */ - -/* Ocean Comment */ -.hljs-comment, -.hljs-quote { - color: #65737e; -} - -/* Ocean Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #bf616a; -} - -/* Ocean Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #d08770; -} - -/* Ocean Yellow */ -.hljs-attribute { - color: #ebcb8b; -} - -/* Ocean Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #a3be8c; -} - -/* Ocean Blue */ -.hljs-title, -.hljs-section { - color: #8fa1b3; -} - -/* Ocean Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #b48ead; -} - -.hljs { - display: block; - overflow-x: auto; - background: #2b303b; - color: #c0c5ce; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/paraiso-dark.css b/highlight/styles/paraiso-dark.css deleted file mode 100644 index e7292401c..000000000 --- a/highlight/styles/paraiso-dark.css +++ /dev/null @@ -1,72 +0,0 @@ -/* - Paraíso (dark) - Created by Jan T. Sott (http://github.com/idleberg) - Inspired by the art of Rubens LP (http://www.rubenslp.com.br) -*/ - -/* Paraíso Comment */ -.hljs-comment, -.hljs-quote { - color: #8d8687; -} - -/* Paraíso Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-link, -.hljs-meta { - color: #ef6155; -} - -/* Paraíso Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-deletion { - color: #f99b15; -} - -/* Paraíso Yellow */ -.hljs-title, -.hljs-section, -.hljs-attribute { - color: #fec418; -} - -/* Paraíso Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #48b685; -} - -/* Paraíso Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #815ba4; -} - -.hljs { - display: block; - overflow-x: auto; - background: #2f1e2e; - color: #a39e9b; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/paraiso-light.css b/highlight/styles/paraiso-light.css deleted file mode 100644 index 944857cd8..000000000 --- a/highlight/styles/paraiso-light.css +++ /dev/null @@ -1,72 +0,0 @@ -/* - Paraíso (light) - Created by Jan T. Sott (http://github.com/idleberg) - Inspired by the art of Rubens LP (http://www.rubenslp.com.br) -*/ - -/* Paraíso Comment */ -.hljs-comment, -.hljs-quote { - color: #776e71; -} - -/* Paraíso Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-link, -.hljs-meta { - color: #ef6155; -} - -/* Paraíso Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-deletion { - color: #f99b15; -} - -/* Paraíso Yellow */ -.hljs-title, -.hljs-section, -.hljs-attribute { - color: #fec418; -} - -/* Paraíso Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #48b685; -} - -/* Paraíso Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #815ba4; -} - -.hljs { - display: block; - overflow-x: auto; - background: #e7e9db; - color: #4f424c; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/pojoaque.css b/highlight/styles/pojoaque.css deleted file mode 100644 index 2e07847b2..000000000 --- a/highlight/styles/pojoaque.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - -Pojoaque Style by Jason Tate -http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html -Based on Solarized Style from http://ethanschoonover.com/solarized - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #dccf8f; - background: url(./pojoaque.jpg) repeat scroll left top #181914; -} - -.hljs-comment, -.hljs-quote { - color: #586e75; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-addition { - color: #b64926; -} - -.hljs-number, -.hljs-string, -.hljs-doctag, -.hljs-regexp { - color: #468966; -} - -.hljs-title, -.hljs-section, -.hljs-built_in, -.hljs-name { - color: #ffb03b; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-class .hljs-title, -.hljs-type, -.hljs-tag { - color: #b58900; -} - -.hljs-attribute { - color: #b89859; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-subst, -.hljs-meta { - color: #cb4b16; -} - -.hljs-deletion { - color: #dc322f; -} - -.hljs-selector-id, -.hljs-selector-class { - color: #d3a60c; -} - -.hljs-formula { - background: #073642; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/pojoaque.jpg b/highlight/styles/pojoaque.jpg deleted file mode 100644 index 9c07d4ab40b6d77e90ff69f0012bcd33b21d31c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1186 zcmZXSe^8Tk9LK-kXFs3)f@f?)Cddzw3v4wdZyXQ;4x3=;Ja*N#%n9ik!UGmt9H3k0 zJST|5jOc(ID$FQt3C?jQZBws#kXolO1lg9Pba9BB=Q+UEBX!nY@6Uhl&+ofe$Q$y5 z@ci`~)&qzDP(lOiQ5p?p z(`j^e7!yUAVHk%K#^GQXn?s0=VLYCI$HRoe=xCuZ>A6A3@sxEP#XqNFpIb=0)KQ#Nss_tD17;m4@$JKL;LR|K|QF3f%!L5+s(9Ft8SQ zG|~pGpEGFW5Z|OA)-O@mNHy-g@7m8JTf?kl@vUKBGmw)Y*9sDRNr3PN!IKefWaydTe1D zjzpyzPnD3}hBNaS4aFX7=0&~I*Hu7#4au@qVBglH#-m;QFOx_`=j z{EqRY#Eh*yoWP^pa4H>8GH{rO?!_+xwL0(k4yL^D%^nBkJ*UI;Lx;ped8d|f*S_s@ z3~ilcRC(&NT#9Gn#UD;o^EYSMXDMf%XcUi3>;WXXD-QX3P9wMyP7eA&RS{)h5{??W3^Rq=goFJ>?lA~J- zdYe>!xvYLW*fPT0RK7wsJRg^?x#W1*GP9_f`6t>QD_X>0d!owyN>nO2?U5}|3?hX_UZYT@^>S!9eB~bZ9U`q;`U)@L670o1g z`Hd}h<_WRvUc|n*%v4Hbb-4tJD40iyF^q%g*&!6>hkYDvi-{Uc4yTM zzcthN4Z{ka!+F_KzYV#yWi;c^X^q6g`pD8cp?$Kl?hCz0s^a|mH%P!CF%*<6k^~i` zT5Mi-t5-frUcHkk^Qh}+N)Kz1&Bi95`oNc|quI>tUi~BY>xcF9(%tv2i{G6kE9*q~ qCoAGl20`)w0rdgp9H%Q=M5|p`hOhFz6$I%Y&ncY8>c?7PXyh+SL&XXJ diff --git a/highlight/styles/purebasic.css b/highlight/styles/purebasic.css deleted file mode 100644 index 5ce9b9e07..000000000 --- a/highlight/styles/purebasic.css +++ /dev/null @@ -1,96 +0,0 @@ -/* - -PureBASIC native IDE style ( version 1.0 - April 2016 ) - -by Tristano Ajmone - -Public Domain - -NOTE_1: PureBASIC code syntax highlighting only applies the following classes: - .hljs-comment - .hljs-function - .hljs-keywords - .hljs-string - .hljs-symbol - - Other classes are added here for the benefit of styling other languages with the look and feel of PureBASIC native IDE style. - If you need to customize a stylesheet for PureBASIC only, remove all non-relevant classes -- PureBASIC-related classes are followed by - a "--- used for PureBASIC ... ---" comment on same line. - -NOTE_2: Color names provided in comments were derived using "Name that Color" online tool: - http://chir.ag/projects/name-that-color -*/ - -.hljs { /* Common set of rules required by highlight.js (don'r remove!) */ - display: block; - overflow-x: auto; - padding: 0.5em; - background: #FFFFDF; /* Half and Half (approx.) */ -/* --- Uncomment to add PureBASIC native IDE styled font! - font-family: Consolas; -*/ -} - -.hljs, /* --- used for PureBASIC base color --- */ -.hljs-type, /* --- used for PureBASIC Procedures return type --- */ -.hljs-function, /* --- used for wrapping PureBASIC Procedures definitions --- */ -.hljs-name, -.hljs-number, -.hljs-attr, -.hljs-params, -.hljs-subst { - color: #000000; /* Black */ -} - -.hljs-comment, /* --- used for PureBASIC Comments --- */ -.hljs-regexp, -.hljs-section, -.hljs-selector-pseudo, -.hljs-addition { - color: #00AAAA; /* Persian Green (approx.) */ -} - -.hljs-title, /* --- used for PureBASIC Procedures Names --- */ -.hljs-tag, -.hljs-variable, -.hljs-code { - color: #006666; /* Blue Stone (approx.) */ -} - -.hljs-keyword, /* --- used for PureBASIC Keywords --- */ -.hljs-class, -.hljs-meta-keyword, -.hljs-selector-class, -.hljs-built_in, -.hljs-builtin-name { - color: #006666; /* Blue Stone (approx.) */ - font-weight: bold; -} - -.hljs-string, /* --- used for PureBASIC Strings --- */ -.hljs-selector-attr { - color: #0080FF; /* Azure Radiance (approx.) */ -} - -.hljs-symbol, /* --- used for PureBASIC Constants --- */ -.hljs-link, -.hljs-deletion, -.hljs-attribute { - color: #924B72; /* Cannon Pink (approx.) */ -} - -.hljs-meta, -.hljs-literal, -.hljs-selector-id { - color: #924B72; /* Cannon Pink (approx.) */ - font-weight: bold; -} - -.hljs-strong, -.hljs-name { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/qtcreator_dark.css b/highlight/styles/qtcreator_dark.css deleted file mode 100644 index 7aa56a365..000000000 --- a/highlight/styles/qtcreator_dark.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - -Qt Creator dark color scheme - -*/ - - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #000000; -} - -.hljs, -.hljs-subst, -.hljs-tag, -.hljs-title { - color: #aaaaaa; -} - -.hljs-strong, -.hljs-emphasis { - color: #a8a8a2; -} - -.hljs-bullet, -.hljs-quote, -.hljs-number, -.hljs-regexp, -.hljs-literal { - color: #ff55ff; -} - -.hljs-code -.hljs-selector-class { - color: #aaaaff; -} - -.hljs-emphasis, -.hljs-stronge, -.hljs-type { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-function, -.hljs-section, -.hljs-symbol, -.hljs-name { - color: #ffff55; -} - -.hljs-attribute { - color: #ff5555; -} - -.hljs-variable, -.hljs-params, -.hljs-class .hljs-title { - color: #8888ff; -} - -.hljs-string, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition, -.hljs-link { - color: #ff55ff; -} - -.hljs-comment, -.hljs-meta, -.hljs-deletion { - color: #55ffff; -} diff --git a/highlight/styles/qtcreator_light.css b/highlight/styles/qtcreator_light.css deleted file mode 100644 index 1efa2c660..000000000 --- a/highlight/styles/qtcreator_light.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - -Qt Creator light color scheme - -*/ - - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #ffffff; -} - -.hljs, -.hljs-subst, -.hljs-tag, -.hljs-title { - color: #000000; -} - -.hljs-strong, -.hljs-emphasis { - color: #000000; -} - -.hljs-bullet, -.hljs-quote, -.hljs-number, -.hljs-regexp, -.hljs-literal { - color: #000080; -} - -.hljs-code -.hljs-selector-class { - color: #800080; -} - -.hljs-emphasis, -.hljs-stronge, -.hljs-type { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-function, -.hljs-section, -.hljs-symbol, -.hljs-name { - color: #808000; -} - -.hljs-attribute { - color: #800000; -} - -.hljs-variable, -.hljs-params, -.hljs-class .hljs-title { - color: #0055AF; -} - -.hljs-string, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition, -.hljs-link { - color: #008000; -} - -.hljs-comment, -.hljs-meta, -.hljs-deletion { - color: #008000; -} diff --git a/highlight/styles/railscasts.css b/highlight/styles/railscasts.css deleted file mode 100644 index 008cdc5bf..000000000 --- a/highlight/styles/railscasts.css +++ /dev/null @@ -1,106 +0,0 @@ -/* - -Railscasts-like style (c) Visoft, Inc. (Damien White) - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #232323; - color: #e6e1dc; -} - -.hljs-comment, -.hljs-quote { - color: #bc9458; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag { - color: #c26230; -} - -.hljs-string, -.hljs-number, -.hljs-regexp, -.hljs-variable, -.hljs-template-variable { - color: #a5c261; -} - -.hljs-subst { - color: #519f50; -} - -.hljs-tag, -.hljs-name { - color: #e8bf6a; -} - -.hljs-type { - color: #da4939; -} - - -.hljs-symbol, -.hljs-bullet, -.hljs-built_in, -.hljs-builtin-name, -.hljs-attr, -.hljs-link { - color: #6d9cbe; -} - -.hljs-params { - color: #d0d0ff; -} - -.hljs-attribute { - color: #cda869; -} - -.hljs-meta { - color: #9b859d; -} - -.hljs-title, -.hljs-section { - color: #ffc66d; -} - -.hljs-addition { - background-color: #144212; - color: #e6e1dc; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #600; - color: #e6e1dc; - display: inline-block; - width: 100%; -} - -.hljs-selector-class { - color: #9b703f; -} - -.hljs-selector-id { - color: #8b98ab; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/highlight/styles/rainbow.css b/highlight/styles/rainbow.css deleted file mode 100644 index 905eb8ef1..000000000 --- a/highlight/styles/rainbow.css +++ /dev/null @@ -1,85 +0,0 @@ -/* - -Style with support for rainbow parens - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #474949; - color: #d1d9e1; -} - - -.hljs-comment, -.hljs-quote { - color: #969896; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-type, -.hljs-addition { - color: #cc99cc; -} - -.hljs-number, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #f99157; -} - -.hljs-string, -.hljs-doctag, -.hljs-regexp { - color: #8abeb7; -} - -.hljs-title, -.hljs-name, -.hljs-section, -.hljs-built_in { - color: #b5bd68; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-selector-id, -.hljs-class .hljs-title { - color: #ffcc66; -} - -.hljs-section, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-subst, -.hljs-meta, -.hljs-link { - color: #f99157; -} - -.hljs-deletion { - color: #dc322f; -} - -.hljs-formula { - background: #eee8d5; -} - -.hljs-attr, -.hljs-attribute { - color: #81a2be; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/school-book.css b/highlight/styles/school-book.css deleted file mode 100644 index 964b51d84..000000000 --- a/highlight/styles/school-book.css +++ /dev/null @@ -1,72 +0,0 @@ -/* - -School Book style from goldblog.com.ua (c) Zaripov Yura - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 15px 0.5em 0.5em 30px; - font-size: 11px; - line-height:16px; -} - -pre{ - background:#f6f6ae url(./school-book.png); - border-top: solid 2px #d2e8b9; - border-bottom: solid 1px #d2e8b9; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal { - color:#005599; - font-weight:bold; -} - -.hljs, -.hljs-subst { - color: #3e5915; -} - -.hljs-string, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-symbol, -.hljs-bullet, -.hljs-attribute, -.hljs-built_in, -.hljs-builtin-name, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable, -.hljs-link { - color: #2c009f; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion, -.hljs-meta { - color: #e60415; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-name, -.hljs-selector-id, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/school-book.png b/highlight/styles/school-book.png deleted file mode 100644 index 956e9790a0e2c079b3d568348ff3accd1d9cac30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmeAS@N?(olHy`uVBq!ia0y~yV7?7x3vjRjNjAS6Ga$v1?&#~tz_9*=IcwKTAYZb? zHKHUqKdq!Zu_%?nF(p4KRlzeiF+DXXH8G{K@MNkD0|R4)r;B4q#jQ7Ycl#YS5MfK$ z?b^fh#qmaEhFDxvyThwfhdfkOPApt1lr{NA;Vr%uzxJuVIyzm(ed_8_-0$LLU})H&o5Re&aDemE>EG#(|F^t9_pa-H z_Mf?rMVrs}-M?S|?ZdY@c6s41zy8~}@a{v&#Ea7V)wJ$+#K|u$5UvWCdFLwGac}6w{_s*=8A6L7Rfc|9gboFyt I=akR{0OLZ+qyPW_ diff --git a/highlight/styles/solarized-dark.css b/highlight/styles/solarized-dark.css deleted file mode 100644 index b4c0da1f7..000000000 --- a/highlight/styles/solarized-dark.css +++ /dev/null @@ -1,84 +0,0 @@ -/* - -Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #002b36; - color: #839496; -} - -.hljs-comment, -.hljs-quote { - color: #586e75; -} - -/* Solarized Green */ -.hljs-keyword, -.hljs-selector-tag, -.hljs-addition { - color: #859900; -} - -/* Solarized Cyan */ -.hljs-number, -.hljs-string, -.hljs-meta .hljs-meta-string, -.hljs-literal, -.hljs-doctag, -.hljs-regexp { - color: #2aa198; -} - -/* Solarized Blue */ -.hljs-title, -.hljs-section, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #268bd2; -} - -/* Solarized Yellow */ -.hljs-attribute, -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-class .hljs-title, -.hljs-type { - color: #b58900; -} - -/* Solarized Orange */ -.hljs-symbol, -.hljs-bullet, -.hljs-subst, -.hljs-meta, -.hljs-meta .hljs-keyword, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-link { - color: #cb4b16; -} - -/* Solarized Red */ -.hljs-built_in, -.hljs-deletion { - color: #dc322f; -} - -.hljs-formula { - background: #073642; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/solarized-light.css b/highlight/styles/solarized-light.css deleted file mode 100644 index fdcfcc72c..000000000 --- a/highlight/styles/solarized-light.css +++ /dev/null @@ -1,84 +0,0 @@ -/* - -Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fdf6e3; - color: #657b83; -} - -.hljs-comment, -.hljs-quote { - color: #93a1a1; -} - -/* Solarized Green */ -.hljs-keyword, -.hljs-selector-tag, -.hljs-addition { - color: #859900; -} - -/* Solarized Cyan */ -.hljs-number, -.hljs-string, -.hljs-meta .hljs-meta-string, -.hljs-literal, -.hljs-doctag, -.hljs-regexp { - color: #2aa198; -} - -/* Solarized Blue */ -.hljs-title, -.hljs-section, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #268bd2; -} - -/* Solarized Yellow */ -.hljs-attribute, -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-class .hljs-title, -.hljs-type { - color: #b58900; -} - -/* Solarized Orange */ -.hljs-symbol, -.hljs-bullet, -.hljs-subst, -.hljs-meta, -.hljs-meta .hljs-keyword, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-link { - color: #cb4b16; -} - -/* Solarized Red */ -.hljs-built_in, -.hljs-deletion { - color: #dc322f; -} - -.hljs-formula { - background: #eee8d5; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/sunburst.css b/highlight/styles/sunburst.css deleted file mode 100644 index f56dd5e9b..000000000 --- a/highlight/styles/sunburst.css +++ /dev/null @@ -1,102 +0,0 @@ -/* - -Sunburst-like style (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #000; - color: #f8f8f8; -} - -.hljs-comment, -.hljs-quote { - color: #aeaeae; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-type { - color: #e28964; -} - -.hljs-string { - color: #65b042; -} - -.hljs-subst { - color: #daefa3; -} - -.hljs-regexp, -.hljs-link { - color: #e9c062; -} - -.hljs-title, -.hljs-section, -.hljs-tag, -.hljs-name { - color: #89bdff; -} - -.hljs-class .hljs-title, -.hljs-doctag { - text-decoration: underline; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-number { - color: #3387cc; -} - -.hljs-params, -.hljs-variable, -.hljs-template-variable { - color: #3e87e3; -} - -.hljs-attribute { - color: #cda869; -} - -.hljs-meta { - color: #8996a8; -} - -.hljs-formula { - background-color: #0e2231; - color: #f8f8f8; - font-style: italic; -} - -.hljs-addition { - background-color: #253b22; - color: #f8f8f8; -} - -.hljs-deletion { - background-color: #420e09; - color: #f8f8f8; -} - -.hljs-selector-class { - color: #9b703f; -} - -.hljs-selector-id { - color: #8b98ab; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/tomorrow-night-blue.css b/highlight/styles/tomorrow-night-blue.css deleted file mode 100644 index 78e59cc8c..000000000 --- a/highlight/styles/tomorrow-night-blue.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Tomorrow Night Blue Theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #7285b7; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #ff9da4; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #ffc58f; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #ffeead; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #d1f1a9; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #bbdaff; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #ebbbff; -} - -.hljs { - display: block; - overflow-x: auto; - background: #002451; - color: white; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/tomorrow-night-bright.css b/highlight/styles/tomorrow-night-bright.css deleted file mode 100644 index e05af8ae2..000000000 --- a/highlight/styles/tomorrow-night-bright.css +++ /dev/null @@ -1,74 +0,0 @@ -/* Tomorrow Night Bright Theme */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #969896; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #d54e53; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #e78c45; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #e7c547; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #b9ca4a; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #7aa6da; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #c397d8; -} - -.hljs { - display: block; - overflow-x: auto; - background: black; - color: #eaeaea; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/tomorrow-night-eighties.css b/highlight/styles/tomorrow-night-eighties.css deleted file mode 100644 index 08fd51c74..000000000 --- a/highlight/styles/tomorrow-night-eighties.css +++ /dev/null @@ -1,74 +0,0 @@ -/* Tomorrow Night Eighties Theme */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #999999; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #f2777a; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #f99157; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #ffcc66; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #99cc99; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #6699cc; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #cc99cc; -} - -.hljs { - display: block; - overflow-x: auto; - background: #2d2d2d; - color: #cccccc; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/tomorrow-night.css b/highlight/styles/tomorrow-night.css deleted file mode 100644 index ddd270a4e..000000000 --- a/highlight/styles/tomorrow-night.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Tomorrow Night Theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #969896; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #cc6666; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #de935f; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #f0c674; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #b5bd68; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #81a2be; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #b294bb; -} - -.hljs { - display: block; - overflow-x: auto; - background: #1d1f21; - color: #c5c8c6; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/tomorrow.css b/highlight/styles/tomorrow.css deleted file mode 100644 index 026a62fe3..000000000 --- a/highlight/styles/tomorrow.css +++ /dev/null @@ -1,72 +0,0 @@ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #8e908c; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #c82829; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #f5871f; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #eab700; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #718c00; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #4271ae; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #8959a8; -} - -.hljs { - display: block; - overflow-x: auto; - background: white; - color: #4d4d4c; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/vs.css b/highlight/styles/vs.css deleted file mode 100644 index c5d07d311..000000000 --- a/highlight/styles/vs.css +++ /dev/null @@ -1,68 +0,0 @@ -/* - -Visual Studio-like style based on original C# coloring by Jason Diamond - -*/ -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: white; - color: black; -} - -.hljs-comment, -.hljs-quote, -.hljs-variable { - color: #008000; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-built_in, -.hljs-name, -.hljs-tag { - color: #00f; -} - -.hljs-string, -.hljs-title, -.hljs-section, -.hljs-attribute, -.hljs-literal, -.hljs-template-tag, -.hljs-template-variable, -.hljs-type, -.hljs-addition { - color: #a31515; -} - -.hljs-deletion, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-meta { - color: #2b91af; -} - -.hljs-doctag { - color: #808080; -} - -.hljs-attr { - color: #f00; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link { - color: #00b0e8; -} - - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/highlight/styles/xcode.css b/highlight/styles/xcode.css deleted file mode 100644 index 43dddad84..000000000 --- a/highlight/styles/xcode.css +++ /dev/null @@ -1,93 +0,0 @@ -/* - -XCode style (c) Angel Garcia - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fff; - color: black; -} - -.hljs-comment, -.hljs-quote { - color: #006a00; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal { - color: #aa0d91; -} - -.hljs-name { - color: #008; -} - -.hljs-variable, -.hljs-template-variable { - color: #660; -} - -.hljs-string { - color: #c41a16; -} - -.hljs-regexp, -.hljs-link { - color: #080; -} - -.hljs-title, -.hljs-tag, -.hljs-symbol, -.hljs-bullet, -.hljs-number, -.hljs-meta { - color: #1c00cf; -} - -.hljs-section, -.hljs-class .hljs-title, -.hljs-type, -.hljs-attr, -.hljs-built_in, -.hljs-builtin-name, -.hljs-params { - color: #5c2699; -} - -.hljs-attribute, -.hljs-subst { - color: #000; -} - -.hljs-formula { - background-color: #eee; - font-style: italic; -} - -.hljs-addition { - background-color: #baeeba; -} - -.hljs-deletion { - background-color: #ffc8bd; -} - -.hljs-selector-id, -.hljs-selector-class { - color: #9b703f; -} - -.hljs-doctag, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/highlight/styles/xt256.css b/highlight/styles/xt256.css deleted file mode 100644 index 58df82cb7..000000000 --- a/highlight/styles/xt256.css +++ /dev/null @@ -1,92 +0,0 @@ - -/* - xt256.css - - Contact: initbar [at] protonmail [dot] ch - : github.com/initbar -*/ - -.hljs { - display: block; - overflow-x: auto; - color: #eaeaea; - background: #000; - padding: 0.5; -} - -.hljs-subst { - color: #eaeaea; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-builtin-name, -.hljs-type { - color: #eaeaea; -} - -.hljs-params { - color: #da0000; -} - -.hljs-literal, -.hljs-number, -.hljs-name { - color: #ff0000; - font-weight: bolder; -} - -.hljs-comment { - color: #969896; -} - -.hljs-selector-id, -.hljs-quote { - color: #00ffff; -} - -.hljs-template-variable, -.hljs-variable, -.hljs-title { - color: #00ffff; - font-weight: bold; -} - -.hljs-selector-class, -.hljs-keyword, -.hljs-symbol { - color: #fff000; -} - -.hljs-string, -.hljs-bullet { - color: #00ff00; -} - -.hljs-tag, -.hljs-section { - color: #000fff; -} - -.hljs-selector-tag { - color: #000fff; - font-weight: bold; -} - -.hljs-attribute, -.hljs-built_in, -.hljs-regexp, -.hljs-link { - color: #ff00ff; -} - -.hljs-meta { - color: #fff; - font-weight: bolder; -} diff --git a/highlight/styles/zenburn.css b/highlight/styles/zenburn.css deleted file mode 100644 index 07be50201..000000000 --- a/highlight/styles/zenburn.css +++ /dev/null @@ -1,80 +0,0 @@ -/* - -Zenburn style from voldmar.ru (c) Vladimir Epifanov -based on dark.css by Ivan Sagalaev - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #3f3f3f; - color: #dcdcdc; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-tag { - color: #e3ceab; -} - -.hljs-template-tag { - color: #dcdcdc; -} - -.hljs-number { - color: #8cd0d3; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-attribute { - color: #efdcbc; -} - -.hljs-literal { - color: #efefaf; -} - -.hljs-subst { - color: #8f8f8f; -} - -.hljs-title, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-section, -.hljs-type { - color: #efef8f; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link { - color: #dca3a3; -} - -.hljs-deletion, -.hljs-string, -.hljs-built_in, -.hljs-builtin-name { - color: #cc9393; -} - -.hljs-addition, -.hljs-comment, -.hljs-quote, -.hljs-meta { - color: #7f9f7f; -} - - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/img/favicon.png b/img/favicon.png deleted file mode 100644 index 85efb0d480edc938f23d5a7877da172598b77374..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17629 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 Q`v3p{07*qoM6N<$f@~zD!~g&Q diff --git a/img/favicon114x114.png b/img/favicon114x114.png deleted file mode 100644 index c14a073e11957262007585b89b16e220668c878f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19806 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 JPDHLkV1ma5+{pj{ diff --git a/img/favicon120x120.png b/img/favicon120x120.png deleted file mode 100644 index e10763e4140bf8041dafbcb4380bba999625087b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20407 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 mv2?`839w2$0 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 Eg0xc^(EtDd diff --git a/img/favicon150x150.png b/img/favicon150x150.png deleted file mode 100644 index 3f305698238d92b412e59ce3a0fc4e916c9151b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21455 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 diff --git a/img/favicon16x16.png b/img/favicon16x16.png deleted file mode 100644 index 1f73e916383b7067bd5ec8d3cbae406a424d803f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2133 zcmV-b2&(sqP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1YulI^Gt{AU%t1PcK|%VCUoJLu(iGT1)jt?Czj zTxBz9AX5^U_V@p~`3pa5)f(p|1`XlBqOsS-t%&U!r`w#GIlKJa#90mB21obX+5$c%Zk9V_0RXYp3O>iP{c19)Azm^x2LTUeL@B~P({NAT~_miZ{2 zh%FW{R>5Y*Qw%9tpxMb$r9_?D{1z&3(b;ANUu%oyITl$E#$}S?#zWl-Xs8D4ST10V zF>EhiXxi0juTX^LN?2(L$_Nr~kNGtC|2&tX-bd&X9r3~ne%TRvaAPnx-dF`fsBcXD z#CJaCA#RQbVi^qj33J2-(~*~o?CFjzo;)+w`NNrGr3Oje3IGvodpJW3297}NDbOL- z3K4LO;3vUz%g$ynK;GL*rh^;i0CJ)owjm=l*IIAaFiH!E@Elk`4H5-pIp+~S;v!-w zdG^kD?}HZ~z4{b5xZpzw5=M^Xw3uv6<4pS9w}&zsHg}h}b3T$aV+s|0E;-=#(%DOO z9r)W{TQI*f`J;ty-kp5%@kd`zljc>!&$d6CHt)8>5_p#)co1uTM}00e3RHyrS3f8YE@7+5;erX8GT1iP~=7vC6;Dm z+=O_xkV}$r*rDTbs9HZ;-8p209BZ{yL#R5pY}6&tH6f1eF@;bcUcS_-E(Hx%+Q>yy zw~r`ez6hT#XJm-t#xuKNJAl^vA@ zTbwwWPn5LiHnJmCnNbN=m!ML)iJyIa^vis9w5A0q23lM$TT)rU<2J&fI4W&pZ*Wg3 znL5{vGKy{uKZBe6Ue8z`f#w6)O{s*X-(BER&UXytHH(|(6_>Km3%Ep7UNNeKd)FT2 zQLG0F5$ZRQm8b>9-|jN*Qss;rS^;?+S0E+cF5{%HW6QGo4fn8ci|y6b%1OD=TGlS& zmEUb=8&0*du|Xug;nw&5eZ#SojA+@o`zFPGkL7sAYScbTf8BjO#tHO7KdkH=QAOCV zE!aE2qMXom-n`&~Gnbj?E$?;{Yu!?SziP zEy1PPE5>EJ@Es0o+rA&oF6Z*?+}G1`S~4qM_>9+rItOn1iPxds$FDf&OjPMyqxckVJSJ-otdS;!D40N(Vg-Xfy+|00009a7bBm000XT000XT0n*)m z`~Uy|2XskIMF-*t0}e4e$W=F*0006QNkll8!G%gT5lyj_R;Z6C zrivx88hTuK^JvqGIGb}0Gyi{P{+WTbOsamQQb;w+U#zAAU|QkZYn*nZ>Zpi2Tp24W z!1n+3TW3EM@>uwN}Q{ypHGj0=R($&_hV%G=pfr;owSR;kHvusMz%pCa3;n z?{wHWb;8$tpthUfqy}IjBy!~vLgF5fkWB@&nPCC}zbJwMrf24unoMH(6eHp)01Q`Y z;L$NV#bZWB?^FrZ+1^II&4$^$p3OfV;L!;beVU=cF0YH7ccWt^kiC8rLH{5C(byQe zUPpHRE2&fhZ(naqT&kPEQ_X0TT`PQ6&yz1jks#FdGaXux8z5RH|~8H!vj-M2Mt;g@CwXeT6+rIbC_RO;;3hiywg zvwUAz;L*erp1nv_eHji*Zhh>16~81}mvteYCo-+}kY?**)mCWwBo(n*hYm^qboMm^lwd)YStj=Un}G{Y*oT6)CvXK00000 LNkvXXu0mjfz7hGz diff --git a/img/favicon196x196.png b/img/favicon196x196.png deleted file mode 100644 index 3662ce40dd4972aa3a0adaa2de60ab3f2e45f186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29133 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%0ADYJ>jbR#!c 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 diff --git a/img/favicon24x24.png b/img/favicon24x24.png deleted file mode 100644 index 51aa0b651fc0ae0ac229b2379940737631a52556..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8813 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 diff --git a/img/favicon310x150.png b/img/favicon310x150.png deleted file mode 100644 index ce59a7b3a5dac7eaa2e04b3613175c1172539988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15375 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%0D6)?}C-tMv2B@6NsWGi-{H&p& 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 KMNUMnLSTaQJhc-5 diff --git a/img/favicon48x48.png b/img/favicon48x48.png deleted file mode 100644 index ffafd15788f106d8859b42e9b66768339dd185e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12532 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 diff --git a/img/favicon57x57.png b/img/favicon57x57.png deleted file mode 100644 index 7c4b6f71e9fd1565666c29109c39a2685478a10b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15889 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 diff --git a/img/favicon60x60.png b/img/favicon60x60.png deleted file mode 100644 index 30bab0008b44905e36eeae32f5ee7a29f0fb7742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16793 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 M07*qoM6N<$f+2nvp8x;= diff --git a/img/favicon64x64.png b/img/favicon64x64.png deleted file mode 100644 index 0cd662ae16b82a54943a38db6e9cdd6e11395ee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11956 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 T$+Pqo00000NkvXXu0mjf!zijT diff --git a/img/favicon72x72.png b/img/favicon72x72.png deleted file mode 100644 index ee7da20e770674795067b6c2b495c7a2784943f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16856 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 XvzkpsgMaFm00000NkvXXu0mjfbu3ov diff --git a/img/favicon76x76.png b/img/favicon76x76.png deleted file mode 100644 index f75ebd20d3900820fd97fd3be50c97846fb67125..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17079 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 z

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 N002ovPDHLkV1nI|VrKvV diff --git a/img/jumbotron_pattern.png b/img/jumbotron_pattern.png deleted file mode 100644 index 25ff7cf7bcebe541a70047d1e1ed6d538a1aae2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^6M(pbgAGV>98U5BQk(@Ik;M!QddeWoSh3W;3@FH6 z;_2(k{)mHFfLkE^$Gn?BA;}Wgh!W@g+}zZ>5(ej@)Wnk16ovB4k_-iRPv3y>Mm}+% zqGV4O$B>F!Zx1#CIShvv{0xqN$Pmg1;!p|Huo+EfU@TtpNgZUMr>mdKI;Vst0DO%p A!~g&Q diff --git a/img/jumbotron_pattern2x.png b/img/jumbotron_pattern2x.png deleted file mode 100644 index 25ff7cf7bcebe541a70047d1e1ed6d538a1aae2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^6M(pbgAGV>98U5BQk(@Ik;M!QddeWoSh3W;3@FH6 z;_2(k{)mHFfLkE^$Gn?BA;}Wgh!W@g+}zZ>5(ej@)Wnk16ovB4k_-iRPv3y>Mm}+% zqGV4O$B>F!Zx1#CIShvv{0xqN$Pmg1;!p|Huo+EfU@TtpNgZUMr>mdKI;Vst0DO%p A!~g&Q diff --git a/img/navbar_brand.png b/img/navbar_brand.png deleted file mode 100644 index d770781200901ce11769928fd5b8a092b63c6702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15519 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 hGy%R+kCW0W{|B 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 Q`v3p{07*qoM6N<$f@~zD!~g&Q diff --git a/img/poster.png b/img/poster.png deleted file mode 100644 index 804959a9e9dbe5ce60d0107b89e4c480999cd6fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037375 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%0AAW9dnV*>} zcxfD!KKKZ{AxdEq#if!WA=K3BEy@IyM$%sYwfkAh#$&|PG;eK zlc3gEIf%+S?^}{KCmd(H?)t}yPBOyFDAzHB1W28qymDMW5K;f4?S&dYmQW4_{&a6$ zM)lCvYY$Ii3YG0XqLp~FStoSe##iONCG5eWoSqEgQv0kQnkWLVJK>r@NndcBMuJI6 zZw0TE78gSU7foR|(L$sbu{l&?9w}iTiBQq@hik>*%w^|}EK@uIzJY+AGWj0`X z^c&B4XrQOZeJx(8#bq%8Y;@V$VXLZ3?POs8)u^mkr!Tv(vZyZl*^TvUUNE+~9-KyK7j19x@<&xmnTd#{FAl>+zs=GVDiiYlL+k@G)bU-!fOexByS?7pBM+P1B{~ z!|Uo1i7?eG%KOy8?Cm9P9n6X^d!f+Cwe+l%-Sh#w``S?D!RbUtj#N~puLR4X7kP@s z5~+F|nT@4$xOTnfpk7F~p`JcvJwwBj;fD!8>%FNX6sPC(em0Px|NNQMH((Kws6F$2 z9ru5=08hfbRbrWGFthGNDWei_AsRk?C8(8!!@7+lVa zbRS2PiQ{y`{NQF_8f5l>rJ!h!FU_dxE(6_Iv$8=@Z&^4L@Z_>G^4H|CosK{!jZd?P z{2Y0%&~SLU&#$$uf!ptJeX~+wsppX_YtOIoPG>$S!qfj0a(2XCL}-xq(hs+ShB%DK zqpM*Arr{qFOlx`^outLNn7f9yGqt8?LjD0Z-^yG%Bq+elRbi;tK^xD~P5w3P_qtwq zRNnn+!jVl=y{BhOBi2)AD=2a^UDG;4JbTtz7u*qBh<*d(p0%FOTnuuLD-I^&%j2N# zdsx?edvzkKUuOgVT;O$Qo^&NS?|WG8yLj3UBM)BEEyG47j{PNwMmxQP% z;IhN-3-Mzsa1TMPdXPb*ua>MKf5Gm?Fw%f9Q;&`2MQ|Tcc&NbSmsb{fYrT@rwzTj( zwXyyCZJsWX%P2K0f{z$45Wz@2jU$Q@r|7`2Wy|+@H0NpyHWzldV6iQWv7Vx7E92D} zxfuAV^ykl6G|^M-ztR4;=#Lk?bol)e<+@BcBTai` zH*ydKI=oK{nb9^34}Wha)^8@tc(-mnaejS~ny-EowZ-!LDz~f0i70}kbD19O_qG+?&tVTh5Yxe@R=bV zQ@A4Eqm@^l^!WG;JkZM+if(b&Tc|8+$2%?Q3Y6C{__@FzPHlq`BSvVM>o&z zxEJRuBByB!PK7tEKFz-B^h6J1AQ$lyNw%4$?G}u$f;P#VwSUo3KEFD(wy~QfMP0no z(QzIB5Ew&G2?pg>qT@kRgszr zI&9ihjg@y`5sy{WH7e1m4Q_Uz>!W0r8g=aa`hR4d1yh`1 zm!?VZ;1Jy1gQjr^AxMy*!QI^&cY+6Z2o~HO8h59W;7;T2(nur2w^K8_Rr?p-s#EWI z&UFjTC=sk{$a;-Uy8%W20<1b9+X@q%Z@5H);$%kJrb157ttf!6R!GN?$ebi80zS`>FPFNU0ZAV*8f`^d zZJpsP)$bv-O93*9P#BF%0jhuYn2=QR`cY(N7I4TnNr_Hj=MThUT_3c1iD_G%{8{%8P+z`1b>xC?d+uMCm?~=3k z6d(b#?Cu~^_|i-=EH`)(q#1ohj%Z>1>2D_-HF8BT3J&Zfot%R?Id(az7*j?z;bu&rR&LkVRt4b45$4ix$v8KJ2o@XRt~lS z;bEtXs1qGnzj{JTwjGHq$6Q@+%F0Ig7};WyLBi8XT*x`Rr!4b>jJ%vy(?mUhMQlD7 zrVAvaUn{-p#$x*%bK*CY4{?OtNI~L(N9Hr68FDj~Y zS4EFMw`*&h&BFt;3KKf)F1>r19*(B$j6hbT)#VN9{+fRE$`j3kf3eMwXw6T{$!2Nr!zu{^ zM#F$-^_rqJPw4VF)gJ}j$)2q5HdDL5ERHJhA#DT4Y)hZBlDZp-DnEp7*dcO%z;KeH zom@`IYQN=f%KvR$F=hwAU>CX|vW4cY5rk^RBwg*1Z*I2}`YVch+$gM_DU_W6+k6r z0UN13MA_}cgcRPdaNhK$QhVg$lf zMi{;by&)qPBCIbaHERCHjT;IG}Da8E#R++J8-BbdUP8!RZtgW9vjSz_VO+F zGgsBgKblHfGc>D79E2$5jHq0-W45i1+lT$k{C-P0NE@>`h@f&oHpCI!?M9OVK)Xoq z0QI`a$cauYiiN0z-3X%i9)+XZ)ibQ6LD%@cc_*K*w~&*}9$5y6GF>SX>rh_-AM$>^ zAH8&L-FesbPh38M7x$Dbdvh@tXFo4uX(6ojLulb_@Lk4Z)2^hh%fWSj!FI3m5!+PT z@2!lc^P<;>zEr#yPW>!SkNz>YN~RbR`-TH>7K9{EeR$w(TN-lgz6r&G-sZxv{O)Pj z&fjE6eeS*)pZ=EjdwcTS-hv4QZC-r$dd1Gm(|`3eo9eP594LPlF4$uyDX+d!S^1jx zrJX7vJp93CcNfEFQ z&lJm>Xt%J;=;{8%hfm0*9`KtNeIFOOXbecSs|EiRK4(Um!c^)1#}IwAmY-1I?*iGW z0;fzk0;(x-LMZV^YXvoDWpJ8j=B|Dxi9r8 zz@A{NW0rV?_=;6Jxyv=bdlTZBF`oR;?T*((t5!y=GmSZlp;FtWzB$fvzMqe@^Sd;p zj$Rn!rWY~N!8kVw0{Mt*!XG==Qc?+{0_{GcYbhUmG;))nw*xPb2-&zym)Z77Spyr| z0Z0dxbL7#Nssndp6X8dpsrpWKC?F1nKC` zn3v13O<5wa zSkh7|_1+iF{@s7qV^C4p3JL}Q05XX>85xDsB>$TxnyhsubY%#&K&U z9pA;6>!qXq^Ts}UObqYrQ$X2oZv6Wi)u2YZh3f-}X9uh?H-D=7wev$;_u5o0f$DF9 z7heNPQB%^y5|Pi-9_&>e2f{{Z5I8Q_(|BuwN=wCG$GlJRCfhZtL-X19KHEw{#b50C zJD=@)PoPu5#HVQ}gfX;dNpwS_*o`(E8-i_X2m#qK-iaB-qpp^gWP>vO`q0Hf%F)2P z_KhJ!%b1n{CUmhn3Du_pFV|g#}3Y|i4dVyMCx{5@%G&}mERYS z7s`>T(Lbp;YXud&^rR#f6(Xx#dp{fehLT_kvKND@%gBriBnVs8M(}nrRtG0qA^I&9 zPZ(NagK74OVID#es9bqYiH6EQJW;>B_0WF9|21NYJe4&b@f~RRbq29_so_yJV{tBK z0YQOQ8&B+?3aGZFW}i5!l&<>fupd@oT>a(#{_y(n&fr;conmFfG#_H4_~~D~fWa5g zh=TSKpJI0NZU$!tY||n~q3iM1q3GFHOJDzF3wGwwSH+h#!sh*TjNL3S+qBU94Fb?aeQY4(I{a(vAVpMWNJ~Y)wm)W&NTol@{(0MTuG=>&se`iGGYqE( z%LKc@^T2v8qC>iyT%j>{U6>CMob>6Qu6Qer>wUX^l^o7-P#pE>l!Att&3kB)G1{C2L*-9?uH;ZCKvHcw2*QI0rgb@~s^ z+>XDr+|OhwPgy=UdFBO7u(PQ|P4k#|&PWl|cOS$FY#h|Qw6ze~EIe}j`O?#X{8xfT z!5q#9ZDFTq%JH?OibU(7(V6kyS9$JSM)J4JW6tM(HHX$-XkeBVm~#4HBU_ABJdhQn zCHX~fJmNa0H!a&ICuq`t6t~?tIy?C|PTQ>amgrBgL58Neu6oM!zo#rDtz+%NF8g7K0Z|Qo){5Rlb*94@sEBn6kt17v;k2EjbOg-*^sZ_nl=McbNUm(rZI? zPioFMTimoBa#>e9gxqy$Wec60q&P|b8PdYV5bFV^2v{x6QaY(2yMrlxJ#U%)26!yK$UT5ySpLCFx@4=-evs$2 zo0G%s!-KbtuF9WqFf965vS(M2hI$;KR8IQ)sV!{ac;j%}%W?WQ{_Z)Omem%eR^ zsvgA}H9=}%Lrp8i!BT=HE@(xD@%`ubi*PHI%NVx(t$JLF%=6YU$PY}A!@uhb^=IML ze7Q&*yM;;Gz0G0Ugi%O9?kK0cZMY_no(^Qhu zIC6HpyS93Tw(eHW3YwexUS?p}Tf!D4@W0&m{wB2q4W@K1@mGao7{$ep@UW+gqq4qZ z7-*l6wI6p=KynxGeB0Am`%cusk6><-L=hOre7GF>C*u%#D^dWrd7CEXjJrm_0vxY! z+w)U@Rsug#|3ie!uolzU1lW#7LO_<-5Z7dNx>6anew)gO}EpBbU)c{ zaag~i;E}HY<9wE))!>%RodN=II4$a#`+5#J*3nBcIZT16*$=J96}q)T8O0N3^lP@w z8n-7gn}V_<2A1Ww&p-7=xXxDcqcrSy_A{FAzU)#OD8AnBwTb7WlF1Ekla+NQrM;u| zb(%ja(#C3Eb6;JeHf@Aq`EnesCw=f`kQ;+6#sB<)21E57_J!!#5^y&D-k|18;qMw| z;}Mh2)YN>SYPH1LlcxNGCq{&3Tr${GhPhlw0(=y2qgeA6=}=V1qpC{T_C9TE16BVk z8~63yL4qMaoR~3-Z-1%67v_#L5e|>Q%wW_6({HYrh#^yRkTn@9#R`aH_YmHPB6Ht= zM@0P*iORq%h%q@f>I~>Pes^am3q|u;s+K{t&5hyCWC}Qvo@Bd(W&1N%`TVLh<4U8%@U~ULdVW z5KU?PCa>NcbJ*6vk~4zQHF2|ddLLazF>`K41v{|v^nA^zJC}plizU2cU;nL>YAd0M zmOTmlN@V#y@j#RK;G1pbAh+jIekjK8&;P=^3^^Hkoqk^9mFuRepopNBXyN5s4)@FY zJZhnYyoo?I#Td>tW8&v^=D|G`nd8r{;;fM$!)QUP4a{=rv4*v}K zg0SiWZoegPsp~YEdDF=T4WM~$WOuAmpJje|D8(~kxRpOnvo1N!e1?m{P|p>Y4%Zx) zec$2k;n3=O9;rmZfIVi>mB}#X0g;+c40^J?3~clBuiefS(k=If*prVpS#D8~ugG`D z9u+)-$PO^`1!Q6fZ5h6CfCy95y6R}QbOuXAHb;&B=9`fv-M7QR!M49;_Pa+%Y8oAS z+zcp^^E?vzyRt>71K2AIICKOXf;j7+;D)i+_2~|GC1tY^7blh!XYr?dmoa5CLJ4iV z3qR%oZtv?a&)aCG&nZOaCwt8>%{6fFkch^Q>t;wEeJ{&ijGe7d91Y!sdKJs!{@A35 z&2wLkcLNYst3<|nh|JERp%ef$3j;-9+CT@LkWNS6+^J5TV7waI&lv@me|*g?uz05N z2$O^K8EGvMz89#M3&X&T=7((;)K9~>!VguLD!47zh=MU$@!Fk_OdH`GdlOp9y0|;} zEV-mU5rKDdIidzlbzxrJ73&urZjMi$v(V3ozYLZ?8cvL;P*~~MDIWY4%1E~DSP}rT zdsJM{!*s4eV-Z6^?(KioWZ(YWWOB4QaE+jvSpkZ6lRY7ti%}+$twIHxg3;MxT4;fBz!rBGx-= z@{&K|XWFLzS&xT}8tYQJ0VD{-;AgFeL!2rDt8z`U6X0_O)=URa7%l4H9?%oo=mYEY z*ZT5I1(?uL4Ac!$8EF;`U|Eh$dMU8C>f5J);XhDm7PO+ z!O>`lWcz<~1N_|1vkr;pg)!F=2sydp>n)5UZ2dyNKjysgTF0J@bMMDh zeBRC8M4>{4gYhUDe6_yQ1vn+OYhee*)%7&zFE92u6+6cRog2pwdaFD4y(3i2k>9V| z@kyGUJ8?)^>JSAcPy0y=Tq6YKo#zM~PhdW#$;|af{V9!7NV|Q#QgN6;GwAZt`nCH| zY=dOwsp|P@BA{~II;Dm{HDB&=!$QRnOm&%eo(nrnCleAqtorE1TiiKr0I+BR>lCI> z{L(tD7V7+N=PT)A85Dl}!RR7wxFTi%VfpdUkmoRbAs*wdD;#pGfWqImdE^WK_laq=|d=KOSBe-wok-GO%bXy`pi7PC<5OBcYI6ObOFlS^%jAXqRsq}b3C;er1YqH>Nj8DByoS6fHI*2YL+ON%sy9&5eJ2ac)Xh-Yp|6L z^5^)f2Vet_skOeO+|TM{n2_;4Zpa&`fyUJx*WWQ)PMj!O6ML%hukDqwF`?^G3_JG> zxcsbN4T}+pAh_?LKd;q3z^K6eQ)(;NIr*imLQRYu4=E=wd>qkt7!REmvt>BT7ultC zV*t>k{p<1_GK!haCY|qgWrf#+K^JU0cuwH$TRC4O;jud+^@on_SM7{`EN)Q^z@5VM z2R^W`6Jx7R`OcXKwWx~_>#mr%dsSntIh+rpA$_L2YU+#D(=zwFpeL9`dGm|>dsd_9 z>}uN96WuYV(C}|>n8&<9nyDF-rL?bZ)eFiFb`usbg`8lKV4c|?qDfxCDaQV^5h%=B z!@8n+^fhx6QbOJ1xL}1*n4*b8W!Z5FymszqaHnb;USgfb3)|Y&0nVuMU=6v7x38-MyQLC$)Cp;{4&p z16X6`)$bv>;yp!|B;X?+Qmj`ZZSg?l?~&6G1aO91K~_wmC8d}bZx)zuNN-D2vJEV< z8;0cyf^Fu)UYL>oVOlETjK0nn2$y1Vurx{eaYnKN;!$H;#IJaX$} z${#{MjA-5Va?8UBaUXBU4`RWKoK~*#T5TCQxJb0mzVp>n$+!El(|jO*pg6ZSRRgcr zW<&+cYKcfL+oq|B6_Zae7fD6q?To&;OtjOP7G0F2eE>=;z45$C)4 zSZh{*(akjHte1Db7XaCE0=>)qFSr-LfTHDXyK|e-<@(EbLU85~M|0`0sQF^vbf-JhgmW2=VJLmkBJ~y> zCA+WriKx8N43Ffo&Y}g2+*?$(-}PUUu<&sR>54qr0x(Km6nGUuE0(H*ej7j=9rm=$ z|QfkGITaTZotI59a#_wFy;Pu54p%``Z|b ztu6^zA|2ZPAWwp?>%YA+NLe z)l5aln(OQS<{@3Vw6#x;3U5T*x%`g7$+l8vlRw0MFtm=_C$e&xvlS=ijLD)i4>P08 zhi>5n&FY@s?>9_?DZfhOcHlW~{xWaU!#DrHRlge988b!rW&g{@RLitsP@xy_Ou>3S z>XrqTaA~$3yLIat;bDmZVaO5lF_ctjg$2U0R?ar**lD`4>CzdbGi`OxgxhFkNR!#p z`=%(6W0l#~OLq~MhiA3435o{CyLoV?_`cB#=Bt}GlBIlZVi50wJ+?{DX!yg1%mIoQ z&$$ok#cgmAuH@)6cYAhKyr!nmV5KE-spkk`7XyZavjf|^oYyUlnOHwIo>rgMz@990 zC21sgP5qa{ZRwc|zUsmcw66a+4+KZ^m%mf9NDsFt2@zP#%42NO2jI2fa3#g;!cLch z0b41EylFvpt2H1!Ck8;>1&yplYje$zQn3mm^s3QkIXB^~u>J#`Ia~De$q5SuC^G-V zsW0?8usH2oW_32=cSew8A$y-D%E=cZ>R~dmK5z}L#CIo6>M4kRt=mNDNb3)E+@gBr zYKOT=Xc-CHTs~?IVj!QiA_;hP%Ug_$qnXU#zm>$t|Ni`)B0(+!Ow z_q=)9+g_94cvAh#-YWuk#-@hLkG7Bb60Al;O z-z{a#3109J@s)7S_}&=??P^?hQ$SoH1~%~Iav*jQM@7<&y_RPRLzXNs^coY0CLl1% z9Q$YVt``?+@z2CbKrRfCLL(jk>8?zcJP3B?~B^g>xwTsq&*Ud6y_`*=!x{Xlrk3I#iXkMV1 z1ZIKnX=tq}SlWOJH^MbMrhCOj$nbOc9TXvZn4>)WJ2LIaL^Jp>_tq9|k5fe0q7UGu zW#j!aDq5DH@E&^&`5qIVse=+I0KFKKpe6x)8lBjTAtRPlyjtSMl8K4*7@M} z2!_12r0aa5uHILK5C%zla6R)}*dVyXrM0Ona6qHsT3ioN4&=?74dmBiacJtjue4A0 zul_w_*RLghJay=I11@mzP=3d)^uYm-~QR{HLrN@+@aJjty`q z$G3qbq1E0J?oPJ#rT;?x)Dur#%Q-Yit_f%0-z(m;kOST^RCicH=0a_avh zEbMHL+v{B?WkG#E5_E2*$)QLZ;x9x_-oY~$*vQW=P}{EehaKT}aD;}|4xh8!bBoywZr14%6OY81b>U&e!f+ z3U$I|rHHB91QQVlpy`$Epk681n^>$Z_@IrX=_WV}`wv$N!qZj7D|-|f4i`?13vBY@ z$tL<&VEy(sZ{1#e;`GP|1GXJ~ zc|O!=)VIVDhf?#T@R>v}p7p46{oFLa4REvddv>J<@enL9w3=kUIOHvi+ouw0+!h?e z5Za{pagK?5W3QRM!9LjC5-6PA5pwX!H%u?;W?5GN8^bp>|=MeVgp^?Q-t= z_;UHQ6lqjGb+_y*hW@NPx-30lz0m{j=mw7!A*}J+FA)%H`n^Yi`;QLV?Agne&>5ix zID(IHuHJBqiFpf;*xd{SdlRZocPXU`j8A!FKZ(>{a$h4eUbPED;g2uO_|CZ|kX}=i z%nr~GmWaM!75^}xUm?6w>7D9WnDMT6@peGhR)1;rad2Y1;P7RvE+l+^s1tO-s~B)P_Toz+xmLUM{*_6bY_-eZ~aR&abEI zYKWWM#q1741mE}nCb3_=Ukt7JweH!&P=qq$Hx3FuZ=3m3_BL22P#ji%o% z1WJ5&kQi29B48p5L>YBQEXiwCAYN66? z{bRuN{PV1FEva+HPdGa+DX6SILMi>2eHaVg*8%RURH2q&-#~#5IelSu45{z`3pd(Z zr*nd#!i`#wBZk}+GC~Q`At)*Ai{uH26()6&vkiRCYn8%_6paC5b?ER*>UQ=cIuJ6} zW?f7Tf$G86JymW~ekM3WvQ+0X2xQ}Q6Fw4A8Ua=38?HK9#~5W2x&-4)@|?&0)X zI(PD%{N(2zd0Wah*L3bNbemG-ABaqO9V>UmeaK>Cy!GwD1 z(ED)PJptJ3o`UKmdUQ!vZ_vBLbbc|Q57BO3F8Kmf-!QuHFIqPKBF+73fJB1xsO&Ad zk|SJ90flfDPw|@_#gAEfawo;OpJ0V2oNe;03#LorS1YxCyO&7EF50z*V?ev#^}L5e zV%Qb-Ul-JMspbhOZ~tWIk2WN^e!!N#Hu?T)`M4B$*6xIf$36dXIO$y_GzE*n=Fi>P z{Rlbhpfr(0D&Tk~rg2I-vMPamqD$ZxJ4chxGA5D4;$ruN5m4B~n3b;gM;WMgjkcxu z4&r}5!|RnDPG(Zr$MfTTZ!J4>ro{LIx2~{oY;j;5qmRXiF7TVEqoS++Tz&p7?rZ#;ba;R56X(_$zah*;lSRp!sQ_vhytL8yeDxZU-% zY3%cj?e`ix=&(}D6jU7}Vh;1hhh_3|rkF2X1<%v?4O?KgE2KDBMYhQPiFQjCH8Che zk$ut>`XrEb{IAMMH=llX!_34Dc6wp8+fwML8OjB}Xmm{*sN{xo=t^1hcjtcGVDVvi zWWkbxGc8S%au5BdD?*r$sn$aktNPnjJ!?7h)WNgB)nYhCCJ5v_-J*Ld`B&7(Bv>l% z*S?MN0Tm;q03Ute-#DqQ_KzG&pNT7HEAbjV?aM;CThTic#6DftJfF0i0PIF+x)v}~ z`Rn?+YYXDG%k$bB$^7f6!d!&sLDkvKaoa-2yE~`f+txbv&D$WIJYBU>fhC`K#5g@d zCif?^$y%-Zj;J$zKlaP`CHql*OrWnUWSCMp=}t>{!c~vA1~(eC$#!pfEl+^D1ESvLcIMZQ5WM zqc4t~Px1j^+wBpXMN`DY6xtC8CnUJElr>+)J4RO&dnkmut4(luWnmLK$nB{7pP&|a zza&Rbs_!1BC|H&>$Wdug!&-q~Kp{Roju)E{Od;~PCH9_aG{U!Ds7X3M5H=GidY-Zz z?F)_AhRFc&*a?~Z+a~mE4w0d_xck;QBAhUt+*6Wa^LfeIqWcF#X$Kv5dngW#L;M}Dq*226m zo=s>(?mNpRTq!S&jDwotO~y^vm>*1VYhkz>LjJrCvJ62&@3);)jkCP!M^^5gzRF-2 zbL{E@=IN}Y+>Dai)2l#dKoe2j+}A^Ihu_F)d3zYP_l@5omA=lOmp$y`kC*rct3dz` z;(?~+OPXHGUem_D7581EHeuNhj3{2VI(;p>H?tj2N?#%KOQ)1Ye1v>WE)I1&BiC{Z z7+{U%<(}F@yjaP;X_HK|@!c@9BP;u~&?qY9TvNvPt^}=QZp+$O66d9bDeWaTA7S2> zQ-88qz|+Un0`aKggvmgJyj92whU?~MZQ$nMt8Nw>R_64>!c~??@vE}GFXb2VX;V*i z>tiF=@X1O;Yo`=@QOBW^iVUbxessT19UD?H#tHJTc_R+H+aO=Xn!Hl>iw8xsUm6ut z^;eF*a4h^z>RMQjhUrf6Ibb6euGAns3WqAq`JuZyHPRHxWu{B-)6L#Q0j=xz$zZ|> zn6`XsuGYakvEmNtab;j#q`rA07;dXr3>Grx_NvACd-zR;dRLIcin%t+neWbTD2wvsO=`tN~9dkF24nr@*@9Ttcc}8W2vhbJ{6cQ+!6u*KwO4^WbC0j({CojxUt)fgPbul{Tn+3vvABjxD5#j%0bl zh93`2%kpUnhY&-V3oTG_ZgqzwTxFDx^v5FxdMMy8JvW9N*{#U`1$28ofl`x)60RtB zfC9?KQ8+V%)^%jr!u1Zrb)FKoxiM!^v<(j3K`0@^pG0GU`;j@vkwNi>1p!^}-nu_M zC64uT<{bxMV?`zF=PgYy2k36#aUv=^8uuR#mg#yH!+9zbZ_NX!Jfj>)=7{w91SSXK z9z{*D+ME-w3i>MqM1G6*7EQ;R(;5n|n26E&VbV&>cY@S-WVxdffu!O%0rIgtk_jY= z-@~Xf+zo}Ou3c%6^_|cq&6VO5cy#^6y(#qnQOe)%tR-4ZA~z0hrgeC^sdrsERGy8< z8G0~f7NN6-sDbM{9qQkcG!yHq!{l;C3CH)!oWtK$(|4(Y^c;w|;zGY`VCv7wz2W;0S7One z?6Xr|pS0@2PT3Sb3P42t@^aSL-g_ZvBC26o`Rj&>vY1_sNGx&rW&{6H1%ZvEJZ!~t zOc+XXjnMnuEC|kE@JU!d$$|| zF=30I64`RkEW@b2^(_(;qS*Nu89LrOI{IH{+&QpB!5$@JH+JJ@d>{LKjPV?7GbvKnx((5 zw@tArgBbhWtN-|u1BK0-4D1vBPX8`6^ZrDQ5w#_s&o&yK>AdA@H;kFA^X7GkT1?66 zxAB5w*ed_TPz>*yv)#DmESNfL&c3gcvh872iQsfz#a3?)rI#U>`%B$S{V8_Sqi<9< zW1t5pjN6P_0+>e?WJOuT0O94Z1EV}ArV#4mNrNC?tsjD(Ivyml{dBwlMFeigS1kfa z3Z#)*Qe(UjF-mEw6%3@ zN%N)mc^{*ReFdI6s7Sox4r7OUf3ti45o9Z?FZr8!rHDjo%xc3$q>2un zm6+@|zbD~Qz+>EvLs$G>4R#Vdjv~B8o>5Kr^mB=Fc+y|Tx!&3>&n>yYrc%g|+Q0E_ zD;(s=ZMSM~6*4q6k$4z2(tP?N>Y1WQGdAwL@RG8yC`c&B1ZG=_cew-U{GbpdN?eX^ z&+J&epF5Ijqhc|<^FZQWnk8^%_sCA^Rt^MHtF%WB4}O9C;C|IcZ?;O8;X+ef5Zv@T z%z1rLY>8FrbYHCaa_xOuLp3BknF!6aISgq(^h8nmGu+_Kd8a`lya3b8)nJBsSZL&} zty2tyEmI8J-g#g7x)*r){lpcrmO z#b&g${v56%oiOuW+t;b!^G3>(ZB>$Hi-QT$rvYu^4d-nEy40MkwaVZQ z+Z$UO_ppj`>9wDmurE~pgOm(55FsgF#KB3SUh|-+l%BH3efj8MuyjG!Q_g(WWkfw9 zCz5e!MNQ1&n%hGYCocsGHGN+S=X|?aE4)8}3)bcyEyd8kOJCTMF}s*bbjAztx^Yh1 zNUTctuBk+pETcsn_DW555H)J?l}mY4&*waG!z6Q_*^Q*)96_>JRG2;r#8f|&XCtaw z2J&yRtlQ9e99cefN31?Ld$n|Du6~~dB+b+9+iC&}o7yQO-pLKUeO~|ci=pGAj~En2 z1G?Cb$|!_L7jhYQ_LsDF<)_Smfanh$m#KzM@%tXrRo^Dakas$ zUs7$&hTMZ0ZUdlkkob|6J~-vD0(Yt?S(RbCRz< z3x5_+?|gRrBMK{ARW8-#`EAFu_u&95I>Yb{Ri}ztw_1^*tT64F%duO^Wq%gz9$T8c zR7s?lkIC6Cglg(H9ER5s5eJvAv`^6BhNg{Q1M2?y^N6XS*#g@1eu4CUHN-rB?O7O0 z&3B^qY#fE}V+Y_1RWDhN_>j?SZgnDLJRCfL?sUAQZdDmN|ABgEn&TKV9>%n*v4n3P zu}?Gf#{p*@6$!UK7lA_N%_|L7Xo5Pm3N|?|t^322<4t(yB@0f%qMmL%R>y|)S-XDU zpK0&qB06^ahCdpEHQ8M>&X}X=$Vn{*Rd(8H>zmRJ$qH*}9)`d7eHhwuimEj-obLA+ zRs;uf^s8h{A1CHyXDN2UuF4OWB2$lpdVf$<>JYQtL+S`a$Y{W5h}DVa z@T^X)&n@QFV;#uLj5CX1MyuhLtIDkFLty%8=gPybJzI1veup+*y>sWq#)Aw+dso+z z=Xo?%FK`eY%dT&{#>~IU>U#LC1W9hpWVY@`pTd-KEfLkwe0m%=d4ILVTVuimdTm^h zHU7}NCgL|ld+!N+Mk@c;sGhxspIFV|OQY189rNZt{vLT8g+Lr*L{Sid89A!}Oy+ZO z8k62!{8iXdj~;2%F96kHo-GHHVo#T2eHq&_)q9?b^p6g||xJ%{Z>pWVh(JX?SLxJvjnU*?nR9xH}B95!wmC7bay5?;RW?BDhAkRI7K($ za&6hkvd4Ur*GK!BULV&eciAs5%}l{s%mY!)CEQQ<7|E9-5jUx9cOlQ#AfAvtsy!j598T4y$Rn5FY91Wiw0NFlj?|Dg+oC3fDLe?0o?_dosvq4R^) zri6o3ZSUVr#TzmrgSmm-x9uCoo=;VLt@`yJCHrGPup8w5`neG|QdS7Y={&xN$L0aq ziEw^Isb8bskV-H?oLu0N#qA{R<2U~snA%?(!>V`YFq0ZPGLRfAxott}@l>hvydBU! zmj=^!IFZZYx#SOamw(l-)Z(zohJmk=^!atD9*I1Ks0XQ_-?Yuy0H{yFl9Vb;QYU8#ymC(?Qht!Bf2+4KG5G#ON4h0K*@YE| z3ZD-1~$!RbOF2%NCzJ2e{qqpghe-20PxdTACb+HPP%J&H3=_LCol?IZi$ z?}s^>C41CD$#Zx?ca+m)N)L93Ovseo?<_k<8crUm_Zb^NL%CBe-y}wd)Dj#mhjY1fJ!^ zrNjv5EUTNB!atv%L$eM%mXB}vk=mH?pHBuaUEKF8ro)Kh773iCMfZ#F@)pyPb+ZlA zJ++KQV0q^o5?97Klnp@_T73!QxMG!$A?-?zbUZ84c%t#{ck8|n{ha!ij{BSyQ338k zzcUaDi!+(rTN$Ih!S|-%WD(o_+#snb6V(Veyi0zNOye#Fk`6)KGJ)-mSaNY|r>*Pz zU_bai?1--_yxp;1p->2KbEbX_atE$|${cB7QO@9P?P!VkLNFCsUnEse*a&0Hlde72EPMvE^`gpNsf6CwY%I84$51=_-viW`*{|jq`Xa)U(`AVysaI!yp<0HO);dj1 z7aeJY9QxlDK)+HEVMT0|(CwUOdBDY%-v4L;-s0pp+aZPLBk*@qO)QhU-cE|Uxv=Zv z*bGQbdQd#TmE6|cF1nYif!B@qO61agG6m`61>3N-?TsSPIhVw>{FL2}SCaO`YnB)aw$3Hx+zfxmqxzzs8YXx$Q0~4Qal)BWum=sGGxF%b8fo$^Ypdw=+dCQGp#r05% z4n_iPO1@CRQh!hWcw=%T{J2wua=W^J9=)ZcI2pnp&x#fL(a`x~+H{gI1;C%ayO!kw zcskJMetYy^AMUy2qD8oSQ@p1bg?AVBIL|tb+2-+i?=qY?M!GDL6Y~~&>T(&7i8aEm zSEFO6u*`h0w^-B&+_I-g8JF&mnpt1(loxK}IAy*=<6_$`3YE9}&TXgz;8nk{9k(As zOVvm`kh$7fRe>s!2f@kRz8U7O+_cQ?)g-xClF|CPkP~>X)kvQ{*UiRo03q5=`?tMi zQPToV3Z(iGdesrHgm4?@47zr*s0&sd>u3QBCj!Vbwp^tqs8N(I=+xW=E?wOzS50e- zvU-{wx6g~sFy0iV1@)L}XhG|S?`3+$)1u5kmu0PlJ$W;7ZY5Gd`=;CgR3}TIV_>4b z4G&*pDL_*S(|dkz_@zkSnzj;8m-LQ>fn&G0RYOY(@-)N;`Qab$fNhs_AI8N&H#N|k zGyE2(`8ihDI&GmQ0v)EIxr%Eg?PTHgxD&5?Fez9gfbw?LPWQXcd4;%~_XIUlQUN@f z&QsFQ&ryf!bYZmVp0AH{Xv90)yv(imt}E6!@(9`!E?#zxD7HuHTQI8ic4AGHV>(}( zX(<~YeE@3HYO9Z)dM0sOv2W1YOtOQ7%RJkO^Uvxp z277N&_VstNw0z_!5)T(n<;8b=AHFx?hS^PjLM@$Fdu=&=+h}FYO?|=gY8z0bGV^k% zmm;}aT;^E<%6-fIQlc=5 zF7V3o{AkBQ2<*Hm!~eiWDV1bpjgqAbzZ6(SrB{SmYk&Lt+v%_W__|kRiHknD>5uE& zc`%$0VM1^U#gErfHu%W~enyBM;xZ zlk^*%5H+|GDeUVq^D-M858!*!vPFzm$Afx<4rJWIfjvZ^w_w)(scfU^mb@r*`_5gt z?nyh!{^r_!dPWgmIM>LF8&2xZH8bB}e1ADP8INN$?qR$=R#W9j=8wJfIJU>H)#q`n za{uBDF5V)_= z`nw4$?dV0`#2qfJqR)RSM#Dgeq_od96NVQ-+?6ce(p}0i2yt#Dc{8-f9OkVDp3mr0 zaf)%Mo)tQaBfxv+8>DoQ%S!{T8rB9*8V~r9v@F%+zhH+o_qocom!MIEY53G}wqbML zC}U3l%*jU%o=tJdN;adnZTDPea{uwqf1SR6{B(U_)xo2jnDind=EDU6u5iM#8+b_M zxl;6-v~eU$3T|LHw-%_~{pFIT7ntc#Ogq!#M~{lqwg7{-8`F<|{FCWtKmX;Tk6>+` z8*(FibeX2tuU}2yee+NG&b++&pS;=^YAkJ~eZ3T90G0qHzF5uZzP~tczJ(YpzI!3N zx%OUFKwd6^u4WUvUdp!^rJI0-#wrFr&CrqFHkMl|nRq9kjW~Z_-Ve8RcKZjpDBqm$ zotH~bdY;I%t>yDv5`r;!o?i@0&nGNvE>8z2nRkP##*lNPFw3?tv%e5 z7d;zAkfvBvsR=gKui4&~>_pxi#gf#uw7<6-+Ja*W&GpRf&foSdo^sML2Yp$-vq#BC z%zaa!4r#JHE4B5oI>h&W3(4x%=!?_BSfCPn)*dd9xr?NNZ4I6F61v0$KPsxot∾ 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 `l+f=>y@_^{jN&)Siwn_UDfpuB&wK< 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

2YCh=5!(s_^9eh*wxbJ0RL?O9ak^ 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

L>Jz91EsjcWr_4K2&x2O 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%0Au-wSG+ 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�d}w;v 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

egDuNiuP0F0MsALQtiKat4BqoH%0+A3qhq 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

II6l1|(4i9Qfme9FkU|WfIH9hij`i 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ʶhRVFt1Nl+d0@x$`ymNdMZC{eal|lx^LVlc!F* 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 diff --git a/js/kazari.js b/js/kazari.js deleted file mode 100644 index 8c6e89145..000000000 --- a/js/kazari.js +++ /dev/null @@ -1,21878 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// This is CodeMirror (http://codemirror.net), a code editor -// implemented in JavaScript on top of the browser's DOM. -// -// You can find some technical background for some of the code below -// at http://marijnhaverbeke.nl/blog/#cm-internals . - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - module.exports = mod(); - else if (typeof define == "function" && define.amd) // AMD - return define([], mod); - else // Plain browser env - (this || window).CodeMirror = mod(); -})(function() { - "use strict"; - - // BROWSER SNIFFING - - // Kludges for bugs and behavior differences that can't be feature - // detected are enabled based on userAgent etc sniffing. - var userAgent = navigator.userAgent; - var platform = navigator.platform; - - var gecko = /gecko\/\d/i.test(userAgent); - var ie_upto10 = /MSIE \d/.test(userAgent); - var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent); - var ie = ie_upto10 || ie_11up; - var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]); - var webkit = /WebKit\//.test(userAgent); - var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); - var chrome = /Chrome\//.test(userAgent); - var presto = /Opera\//.test(userAgent); - var safari = /Apple Computer/.test(navigator.vendor); - var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); - var phantom = /PhantomJS/.test(userAgent); - - var ios = /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent); - // This is woefully incomplete. Suggestions for alternative methods welcome. - var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent); - var mac = ios || /Mac/.test(platform); - var chromeOS = /\bCrOS\b/.test(userAgent); - var windows = /win/i.test(platform); - - var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/); - if (presto_version) presto_version = Number(presto_version[1]); - if (presto_version && presto_version >= 15) { presto = false; webkit = true; } - // Some browsers use the wrong event properties to signal cmd/ctrl on OS X - var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); - var captureRightClick = gecko || (ie && ie_version >= 9); - - // Optimize some code when these features are not used. - var sawReadOnlySpans = false, sawCollapsedSpans = false; - - // EDITOR CONSTRUCTOR - - // A CodeMirror instance represents an editor. This is the object - // that user code is usually dealing with. - - function CodeMirror(place, options) { - if (!(this instanceof CodeMirror)) return new CodeMirror(place, options); - - this.options = options = options ? copyObj(options) : {}; - // Determine effective options based on given values and defaults. - copyObj(defaults, options, false); - setGuttersForLineNumbers(options); - - var doc = options.value; - if (typeof doc == "string") doc = new Doc(doc, options.mode, null, options.lineSeparator); - this.doc = doc; - - var input = new CodeMirror.inputStyles[options.inputStyle](this); - var display = this.display = new Display(place, doc, input); - display.wrapper.CodeMirror = this; - updateGutters(this); - themeChanged(this); - if (options.lineWrapping) - this.display.wrapper.className += " CodeMirror-wrap"; - if (options.autofocus && !mobile) display.input.focus(); - initScrollbars(this); - - this.state = { - keyMaps: [], // stores maps added by addKeyMap - overlays: [], // highlighting overlays, as added by addOverlay - modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info - overwrite: false, - delayingBlurEvent: false, - focused: false, - suppressEdits: false, // used to disable editing during key handlers when in readOnly mode - pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll - selectingText: false, - draggingText: false, - highlight: new Delayed(), // stores highlight worker timeout - keySeq: null, // Unfinished key sequence - specialChars: null - }; - - var cm = this; - - // Override magic textarea content restore that IE sometimes does - // on our hidden textarea on reload - if (ie && ie_version < 11) setTimeout(function() { cm.display.input.reset(true); }, 20); - - registerEventHandlers(this); - ensureGlobalHandlers(); - - startOperation(this); - this.curOp.forceUpdate = true; - attachDoc(this, doc); - - if ((options.autofocus && !mobile) || cm.hasFocus()) - setTimeout(bind(onFocus, this), 20); - else - onBlur(this); - - for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt)) - optionHandlers[opt](this, options[opt], Init); - maybeUpdateLineNumberWidth(this); - if (options.finishInit) options.finishInit(this); - for (var i = 0; i < initHooks.length; ++i) initHooks[i](this); - endOperation(this); - // Suppress optimizelegibility in Webkit, since it breaks text - // measuring on line wrapping boundaries. - if (webkit && options.lineWrapping && - getComputedStyle(display.lineDiv).textRendering == "optimizelegibility") - display.lineDiv.style.textRendering = "auto"; - } - - // DISPLAY CONSTRUCTOR - - // The display handles the DOM integration, both for input reading - // and content drawing. It holds references to DOM nodes and - // display-related state. - - function Display(place, doc, input) { - var d = this; - this.input = input; - - // Covers bottom-right square when both scrollbars are present. - d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); - d.scrollbarFiller.setAttribute("cm-not-content", "true"); - // Covers bottom of gutter when coverGutterNextToScrollbar is on - // and h scrollbar is present. - d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); - d.gutterFiller.setAttribute("cm-not-content", "true"); - // Will contain the actual code, positioned to cover the viewport. - d.lineDiv = elt("div", null, "CodeMirror-code"); - // Elements are added to these to represent selection and cursors. - d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); - d.cursorDiv = elt("div", null, "CodeMirror-cursors"); - // A visibility: hidden element used to find the size of things. - d.measure = elt("div", null, "CodeMirror-measure"); - // When lines outside of the viewport are measured, they are drawn in this. - d.lineMeasure = elt("div", null, "CodeMirror-measure"); - // Wraps everything that needs to exist inside the vertically-padded coordinate system - d.lineSpace = elt("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], - null, "position: relative; outline: none"); - // Moved around its parent to cover visible view. - d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative"); - // Set to the height of the document, allowing scrolling. - d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); - d.sizerWidth = null; - // Behavior of elts with overflow: auto and padding is - // inconsistent across browsers. This is used to ensure the - // scrollable area is big enough. - d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;"); - // Will contain the gutters, if any. - d.gutters = elt("div", null, "CodeMirror-gutters"); - d.lineGutter = null; - // Actual scrollable element. - d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); - d.scroller.setAttribute("tabIndex", "-1"); - // The element in which the editor lives. - d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); - - // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) - if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } - if (!webkit && !(gecko && mobile)) d.scroller.draggable = true; - - if (place) { - if (place.appendChild) place.appendChild(d.wrapper); - else place(d.wrapper); - } - - // Current rendered range (may be bigger than the view window). - d.viewFrom = d.viewTo = doc.first; - d.reportedViewFrom = d.reportedViewTo = doc.first; - // Information about the rendered lines. - d.view = []; - d.renderedView = null; - // Holds info about a single rendered line when it was rendered - // for measurement, while not in view. - d.externalMeasured = null; - // Empty space (in pixels) above the view - d.viewOffset = 0; - d.lastWrapHeight = d.lastWrapWidth = 0; - d.updateLineNumbers = null; - - d.nativeBarWidth = d.barHeight = d.barWidth = 0; - d.scrollbarsClipped = false; - - // Used to only resize the line number gutter when necessary (when - // the amount of lines crosses a boundary that makes its width change) - d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; - // Set to true when a non-horizontal-scrolling line widget is - // added. As an optimization, line widget aligning is skipped when - // this is false. - d.alignWidgets = false; - - d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; - - // Tracks the maximum line length so that the horizontal scrollbar - // can be kept static when scrolling. - d.maxLine = null; - d.maxLineLength = 0; - d.maxLineChanged = false; - - // Used for measuring wheel scrolling granularity - d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; - - // True when shift is held down. - d.shift = false; - - // Used to track whether anything happened since the context menu - // was opened. - d.selForContextMenu = null; - - d.activeTouch = null; - - input.init(d); - } - - // STATE UPDATES - - // Used to get the editor into a consistent state again when options change. - - function loadMode(cm) { - cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption); - resetModeState(cm); - } - - function resetModeState(cm) { - cm.doc.iter(function(line) { - if (line.stateAfter) line.stateAfter = null; - if (line.styles) line.styles = null; - }); - cm.doc.frontier = cm.doc.first; - startWorker(cm, 100); - cm.state.modeGen++; - if (cm.curOp) regChange(cm); - } - - function wrappingChanged(cm) { - if (cm.options.lineWrapping) { - addClass(cm.display.wrapper, "CodeMirror-wrap"); - cm.display.sizer.style.minWidth = ""; - cm.display.sizerWidth = null; - } else { - rmClass(cm.display.wrapper, "CodeMirror-wrap"); - findMaxLine(cm); - } - estimateLineHeights(cm); - regChange(cm); - clearCaches(cm); - setTimeout(function(){updateScrollbars(cm);}, 100); - } - - // Returns a function that estimates the height of a line, to use as - // first approximation until the line becomes visible (and is thus - // properly measurable). - function estimateHeight(cm) { - var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; - var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); - return function(line) { - if (lineIsHidden(cm.doc, line)) return 0; - - var widgetsHeight = 0; - if (line.widgets) for (var i = 0; i < line.widgets.length; i++) { - if (line.widgets[i].height) widgetsHeight += line.widgets[i].height; - } - - if (wrapping) - return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th; - else - return widgetsHeight + th; - }; - } - - function estimateLineHeights(cm) { - var doc = cm.doc, est = estimateHeight(cm); - doc.iter(function(line) { - var estHeight = est(line); - if (estHeight != line.height) updateLineHeight(line, estHeight); - }); - } - - function themeChanged(cm) { - cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + - cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); - clearCaches(cm); - } - - function guttersChanged(cm) { - updateGutters(cm); - regChange(cm); - setTimeout(function(){alignHorizontally(cm);}, 20); - } - - // Rebuild the gutter elements, ensure the margin to the left of the - // code matches their width. - function updateGutters(cm) { - var gutters = cm.display.gutters, specs = cm.options.gutters; - removeChildren(gutters); - for (var i = 0; i < specs.length; ++i) { - var gutterClass = specs[i]; - var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass)); - if (gutterClass == "CodeMirror-linenumbers") { - cm.display.lineGutter = gElt; - gElt.style.width = (cm.display.lineNumWidth || 1) + "px"; - } - } - gutters.style.display = i ? "" : "none"; - updateGutterSpace(cm); - } - - function updateGutterSpace(cm) { - var width = cm.display.gutters.offsetWidth; - cm.display.sizer.style.marginLeft = width + "px"; - } - - // Compute the character length of a line, taking into account - // collapsed ranges (see markText) that might hide parts, and join - // other lines onto it. - function lineLength(line) { - if (line.height == 0) return 0; - var len = line.text.length, merged, cur = line; - while (merged = collapsedSpanAtStart(cur)) { - var found = merged.find(0, true); - cur = found.from.line; - len += found.from.ch - found.to.ch; - } - cur = line; - while (merged = collapsedSpanAtEnd(cur)) { - var found = merged.find(0, true); - len -= cur.text.length - found.from.ch; - cur = found.to.line; - len += cur.text.length - found.to.ch; - } - return len; - } - - // Find the longest line in the document. - function findMaxLine(cm) { - var d = cm.display, doc = cm.doc; - d.maxLine = getLine(doc, doc.first); - d.maxLineLength = lineLength(d.maxLine); - d.maxLineChanged = true; - doc.iter(function(line) { - var len = lineLength(line); - if (len > d.maxLineLength) { - d.maxLineLength = len; - d.maxLine = line; - } - }); - } - - // Make sure the gutters options contains the element - // "CodeMirror-linenumbers" when the lineNumbers option is true. - function setGuttersForLineNumbers(options) { - var found = indexOf(options.gutters, "CodeMirror-linenumbers"); - if (found == -1 && options.lineNumbers) { - options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]); - } else if (found > -1 && !options.lineNumbers) { - options.gutters = options.gutters.slice(0); - options.gutters.splice(found, 1); - } - } - - // SCROLLBARS - - // Prepare DOM reads needed to update the scrollbars. Done in one - // shot to minimize update/measure roundtrips. - function measureForScrollbars(cm) { - var d = cm.display, gutterW = d.gutters.offsetWidth; - var docH = Math.round(cm.doc.height + paddingVert(cm.display)); - return { - clientHeight: d.scroller.clientHeight, - viewHeight: d.wrapper.clientHeight, - scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth, - viewWidth: d.wrapper.clientWidth, - barLeft: cm.options.fixedGutter ? gutterW : 0, - docHeight: docH, - scrollHeight: docH + scrollGap(cm) + d.barHeight, - nativeBarWidth: d.nativeBarWidth, - gutterWidth: gutterW - }; - } - - function NativeScrollbars(place, scroll, cm) { - this.cm = cm; - var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); - var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); - place(vert); place(horiz); - - on(vert, "scroll", function() { - if (vert.clientHeight) scroll(vert.scrollTop, "vertical"); - }); - on(horiz, "scroll", function() { - if (horiz.clientWidth) scroll(horiz.scrollLeft, "horizontal"); - }); - - this.checkedZeroWidth = false; - // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). - if (ie && ie_version < 8) this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; - } - - NativeScrollbars.prototype = copyObj({ - update: function(measure) { - var needsH = measure.scrollWidth > measure.clientWidth + 1; - var needsV = measure.scrollHeight > measure.clientHeight + 1; - var sWidth = measure.nativeBarWidth; - - if (needsV) { - this.vert.style.display = "block"; - this.vert.style.bottom = needsH ? sWidth + "px" : "0"; - var totalHeight = measure.viewHeight - (needsH ? sWidth : 0); - // A bug in IE8 can cause this value to be negative, so guard it. - this.vert.firstChild.style.height = - Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; - } else { - this.vert.style.display = ""; - this.vert.firstChild.style.height = "0"; - } - - if (needsH) { - this.horiz.style.display = "block"; - this.horiz.style.right = needsV ? sWidth + "px" : "0"; - this.horiz.style.left = measure.barLeft + "px"; - var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0); - this.horiz.firstChild.style.width = - (measure.scrollWidth - measure.clientWidth + totalWidth) + "px"; - } else { - this.horiz.style.display = ""; - this.horiz.firstChild.style.width = "0"; - } - - if (!this.checkedZeroWidth && measure.clientHeight > 0) { - if (sWidth == 0) this.zeroWidthHack(); - this.checkedZeroWidth = true; - } - - return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}; - }, - setScrollLeft: function(pos) { - if (this.horiz.scrollLeft != pos) this.horiz.scrollLeft = pos; - if (this.disableHoriz) this.enableZeroWidthBar(this.horiz, this.disableHoriz); - }, - setScrollTop: function(pos) { - if (this.vert.scrollTop != pos) this.vert.scrollTop = pos; - if (this.disableVert) this.enableZeroWidthBar(this.vert, this.disableVert); - }, - zeroWidthHack: function() { - var w = mac && !mac_geMountainLion ? "12px" : "18px"; - this.horiz.style.height = this.vert.style.width = w; - this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; - this.disableHoriz = new Delayed; - this.disableVert = new Delayed; - }, - enableZeroWidthBar: function(bar, delay) { - bar.style.pointerEvents = "auto"; - function maybeDisable() { - // To find out whether the scrollbar is still visible, we - // check whether the element under the pixel in the bottom - // left corner of the scrollbar box is the scrollbar box - // itself (when the bar is still visible) or its filler child - // (when the bar is hidden). If it is still visible, we keep - // it enabled, if it's hidden, we disable pointer events. - var box = bar.getBoundingClientRect(); - var elt = document.elementFromPoint(box.left + 1, box.bottom - 1); - if (elt != bar) bar.style.pointerEvents = "none"; - else delay.set(1000, maybeDisable); - } - delay.set(1000, maybeDisable); - }, - clear: function() { - var parent = this.horiz.parentNode; - parent.removeChild(this.horiz); - parent.removeChild(this.vert); - } - }, NativeScrollbars.prototype); - - function NullScrollbars() {} - - NullScrollbars.prototype = copyObj({ - update: function() { return {bottom: 0, right: 0}; }, - setScrollLeft: function() {}, - setScrollTop: function() {}, - clear: function() {} - }, NullScrollbars.prototype); - - CodeMirror.scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars}; - - function initScrollbars(cm) { - if (cm.display.scrollbars) { - cm.display.scrollbars.clear(); - if (cm.display.scrollbars.addClass) - rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); - } - - cm.display.scrollbars = new CodeMirror.scrollbarModel[cm.options.scrollbarStyle](function(node) { - cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller); - // Prevent clicks in the scrollbars from killing focus - on(node, "mousedown", function() { - if (cm.state.focused) setTimeout(function() { cm.display.input.focus(); }, 0); - }); - node.setAttribute("cm-not-content", "true"); - }, function(pos, axis) { - if (axis == "horizontal") setScrollLeft(cm, pos); - else setScrollTop(cm, pos); - }, cm); - if (cm.display.scrollbars.addClass) - addClass(cm.display.wrapper, cm.display.scrollbars.addClass); - } - - function updateScrollbars(cm, measure) { - if (!measure) measure = measureForScrollbars(cm); - var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight; - updateScrollbarsInner(cm, measure); - for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) { - if (startWidth != cm.display.barWidth && cm.options.lineWrapping) - updateHeightsInViewport(cm); - updateScrollbarsInner(cm, measureForScrollbars(cm)); - startWidth = cm.display.barWidth; startHeight = cm.display.barHeight; - } - } - - // Re-synchronize the fake scrollbars with the actual size of the - // content. - function updateScrollbarsInner(cm, measure) { - var d = cm.display; - var sizes = d.scrollbars.update(measure); - - d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px"; - d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px"; - d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent" - - if (sizes.right && sizes.bottom) { - d.scrollbarFiller.style.display = "block"; - d.scrollbarFiller.style.height = sizes.bottom + "px"; - d.scrollbarFiller.style.width = sizes.right + "px"; - } else d.scrollbarFiller.style.display = ""; - if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { - d.gutterFiller.style.display = "block"; - d.gutterFiller.style.height = sizes.bottom + "px"; - d.gutterFiller.style.width = measure.gutterWidth + "px"; - } else d.gutterFiller.style.display = ""; - } - - // Compute the lines that are visible in a given viewport (defaults - // the the current scroll position). viewport may contain top, - // height, and ensure (see op.scrollToPos) properties. - function visibleLines(display, doc, viewport) { - var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; - top = Math.floor(top - paddingTop(display)); - var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; - - var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom); - // Ensure is a {from: {line, ch}, to: {line, ch}} object, and - // forces those lines into the viewport (if possible). - if (viewport && viewport.ensure) { - var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line; - if (ensureFrom < from) { - from = ensureFrom; - to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight); - } else if (Math.min(ensureTo, doc.lastLine()) >= to) { - from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight); - to = ensureTo; - } - } - return {from: from, to: Math.max(to, from + 1)}; - } - - // LINE NUMBERS - - // Re-align line numbers and gutter marks to compensate for - // horizontal scrolling. - function alignHorizontally(cm) { - var display = cm.display, view = display.view; - if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return; - var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; - var gutterW = display.gutters.offsetWidth, left = comp + "px"; - for (var i = 0; i < view.length; i++) if (!view[i].hidden) { - if (cm.options.fixedGutter) { - if (view[i].gutter) - view[i].gutter.style.left = left; - if (view[i].gutterBackground) - view[i].gutterBackground.style.left = left; - } - var align = view[i].alignable; - if (align) for (var j = 0; j < align.length; j++) - align[j].style.left = left; - } - if (cm.options.fixedGutter) - display.gutters.style.left = (comp + gutterW) + "px"; - } - - // Used to ensure that the line number gutter is still the right - // size for the current document size. Returns true when an update - // is needed. - function maybeUpdateLineNumberWidth(cm) { - if (!cm.options.lineNumbers) return false; - var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; - if (last.length != display.lineNumChars) { - var test = display.measure.appendChild(elt("div", [elt("div", last)], - "CodeMirror-linenumber CodeMirror-gutter-elt")); - var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; - display.lineGutter.style.width = ""; - display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1; - display.lineNumWidth = display.lineNumInnerWidth + padding; - display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; - display.lineGutter.style.width = display.lineNumWidth + "px"; - updateGutterSpace(cm); - return true; - } - return false; - } - - function lineNumberFor(options, i) { - return String(options.lineNumberFormatter(i + options.firstLineNumber)); - } - - // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, - // but using getBoundingClientRect to get a sub-pixel-accurate - // result. - function compensateForHScroll(display) { - return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left; - } - - // DISPLAY DRAWING - - function DisplayUpdate(cm, viewport, force) { - var display = cm.display; - - this.viewport = viewport; - // Store some values that we'll need later (but don't want to force a relayout for) - this.visible = visibleLines(display, cm.doc, viewport); - this.editorIsHidden = !display.wrapper.offsetWidth; - this.wrapperHeight = display.wrapper.clientHeight; - this.wrapperWidth = display.wrapper.clientWidth; - this.oldDisplayWidth = displayWidth(cm); - this.force = force; - this.dims = getDimensions(cm); - this.events = []; - } - - DisplayUpdate.prototype.signal = function(emitter, type) { - if (hasHandler(emitter, type)) - this.events.push(arguments); - }; - DisplayUpdate.prototype.finish = function() { - for (var i = 0; i < this.events.length; i++) - signal.apply(null, this.events[i]); - }; - - function maybeClipScrollbars(cm) { - var display = cm.display; - if (!display.scrollbarsClipped && display.scroller.offsetWidth) { - display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth; - display.heightForcer.style.height = scrollGap(cm) + "px"; - display.sizer.style.marginBottom = -display.nativeBarWidth + "px"; - display.sizer.style.borderRightWidth = scrollGap(cm) + "px"; - display.scrollbarsClipped = true; - } - } - - // Does the actual updating of the line display. Bails out - // (returning false) when there is nothing to be done and forced is - // false. - function updateDisplayIfNeeded(cm, update) { - var display = cm.display, doc = cm.doc; - - if (update.editorIsHidden) { - resetView(cm); - return false; - } - - // Bail out if the visible area is already rendered and nothing changed. - if (!update.force && - update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && - (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && - display.renderedView == display.view && countDirtyView(cm) == 0) - return false; - - if (maybeUpdateLineNumberWidth(cm)) { - resetView(cm); - update.dims = getDimensions(cm); - } - - // Compute a suitable new viewport (from & to) - var end = doc.first + doc.size; - var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); - var to = Math.min(end, update.visible.to + cm.options.viewportMargin); - if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom); - if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo); - if (sawCollapsedSpans) { - from = visualLineNo(cm.doc, from); - to = visualLineEndNo(cm.doc, to); - } - - var different = from != display.viewFrom || to != display.viewTo || - display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; - adjustView(cm, from, to); - - display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); - // Position the mover div to align with the current scroll position - cm.display.mover.style.top = display.viewOffset + "px"; - - var toUpdate = countDirtyView(cm); - if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view && - (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) - return false; - - // For big changes, we hide the enclosing element during the - // update, since that speeds up the operations on most browsers. - var focused = activeElt(); - if (toUpdate > 4) display.lineDiv.style.display = "none"; - patchDisplay(cm, display.updateLineNumbers, update.dims); - if (toUpdate > 4) display.lineDiv.style.display = ""; - display.renderedView = display.view; - // There might have been a widget with a focused element that got - // hidden or updated, if so re-focus it. - if (focused && activeElt() != focused && focused.offsetHeight) focused.focus(); - - // Prevent selection and cursors from interfering with the scroll - // width and height. - removeChildren(display.cursorDiv); - removeChildren(display.selectionDiv); - display.gutters.style.height = display.sizer.style.minHeight = 0; - - if (different) { - display.lastWrapHeight = update.wrapperHeight; - display.lastWrapWidth = update.wrapperWidth; - startWorker(cm, 400); - } - - display.updateLineNumbers = null; - - return true; - } - - function postUpdateDisplay(cm, update) { - var viewport = update.viewport; - - for (var first = true;; first = false) { - if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) { - // Clip forced viewport to actual scrollable area. - if (viewport && viewport.top != null) - viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; - // Updated line heights might result in the drawn area not - // actually covering the viewport. Keep looping until it does. - update.visible = visibleLines(cm.display, cm.doc, viewport); - if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) - break; - } - if (!updateDisplayIfNeeded(cm, update)) break; - updateHeightsInViewport(cm); - var barMeasure = measureForScrollbars(cm); - updateSelection(cm); - updateScrollbars(cm, barMeasure); - setDocumentHeight(cm, barMeasure); - } - - update.signal(cm, "update", cm); - if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) { - update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); - cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo; - } - } - - function updateDisplaySimple(cm, viewport) { - var update = new DisplayUpdate(cm, viewport); - if (updateDisplayIfNeeded(cm, update)) { - updateHeightsInViewport(cm); - postUpdateDisplay(cm, update); - var barMeasure = measureForScrollbars(cm); - updateSelection(cm); - updateScrollbars(cm, barMeasure); - setDocumentHeight(cm, barMeasure); - update.finish(); - } - } - - function setDocumentHeight(cm, measure) { - cm.display.sizer.style.minHeight = measure.docHeight + "px"; - cm.display.heightForcer.style.top = measure.docHeight + "px"; - cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px"; - } - - // Read the actual heights of the rendered lines, and update their - // stored heights to match. - function updateHeightsInViewport(cm) { - var display = cm.display; - var prevBottom = display.lineDiv.offsetTop; - for (var i = 0; i < display.view.length; i++) { - var cur = display.view[i], height; - if (cur.hidden) continue; - if (ie && ie_version < 8) { - var bot = cur.node.offsetTop + cur.node.offsetHeight; - height = bot - prevBottom; - prevBottom = bot; - } else { - var box = cur.node.getBoundingClientRect(); - height = box.bottom - box.top; - } - var diff = cur.line.height - height; - if (height < 2) height = textHeight(display); - if (diff > .001 || diff < -.001) { - updateLineHeight(cur.line, height); - updateWidgetHeight(cur.line); - if (cur.rest) for (var j = 0; j < cur.rest.length; j++) - updateWidgetHeight(cur.rest[j]); - } - } - } - - // Read and store the height of line widgets associated with the - // given line. - function updateWidgetHeight(line) { - if (line.widgets) for (var i = 0; i < line.widgets.length; ++i) - line.widgets[i].height = line.widgets[i].node.parentNode.offsetHeight; - } - - // Do a bulk-read of the DOM positions and sizes needed to draw the - // view, so that we don't interleave reading and writing to the DOM. - function getDimensions(cm) { - var d = cm.display, left = {}, width = {}; - var gutterLeft = d.gutters.clientLeft; - for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { - left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft; - width[cm.options.gutters[i]] = n.clientWidth; - } - return {fixedPos: compensateForHScroll(d), - gutterTotalWidth: d.gutters.offsetWidth, - gutterLeft: left, - gutterWidth: width, - wrapperWidth: d.wrapper.clientWidth}; - } - - // Sync the actual display DOM structure with display.view, removing - // nodes for lines that are no longer in view, and creating the ones - // that are not there yet, and updating the ones that are out of - // date. - function patchDisplay(cm, updateNumbersFrom, dims) { - var display = cm.display, lineNumbers = cm.options.lineNumbers; - var container = display.lineDiv, cur = container.firstChild; - - function rm(node) { - var next = node.nextSibling; - // Works around a throw-scroll bug in OS X Webkit - if (webkit && mac && cm.display.currentWheelTarget == node) - node.style.display = "none"; - else - node.parentNode.removeChild(node); - return next; - } - - var view = display.view, lineN = display.viewFrom; - // Loop over the elements in the view, syncing cur (the DOM nodes - // in display.lineDiv) with the view as we go. - for (var i = 0; i < view.length; i++) { - var lineView = view[i]; - if (lineView.hidden) { - } else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet - var node = buildLineElement(cm, lineView, lineN, dims); - container.insertBefore(node, cur); - } else { // Already drawn - while (cur != lineView.node) cur = rm(cur); - var updateNumber = lineNumbers && updateNumbersFrom != null && - updateNumbersFrom <= lineN && lineView.lineNumber; - if (lineView.changes) { - if (indexOf(lineView.changes, "gutter") > -1) updateNumber = false; - updateLineForChanges(cm, lineView, lineN, dims); - } - if (updateNumber) { - removeChildren(lineView.lineNumber); - lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); - } - cur = lineView.node.nextSibling; - } - lineN += lineView.size; - } - while (cur) cur = rm(cur); - } - - // When an aspect of a line changes, a string is added to - // lineView.changes. This updates the relevant part of the line's - // DOM structure. - function updateLineForChanges(cm, lineView, lineN, dims) { - for (var j = 0; j < lineView.changes.length; j++) { - var type = lineView.changes[j]; - if (type == "text") updateLineText(cm, lineView); - else if (type == "gutter") updateLineGutter(cm, lineView, lineN, dims); - else if (type == "class") updateLineClasses(lineView); - else if (type == "widget") updateLineWidgets(cm, lineView, dims); - } - lineView.changes = null; - } - - // Lines with gutter elements, widgets or a background class need to - // be wrapped, and have the extra elements added to the wrapper div - function ensureLineWrapped(lineView) { - if (lineView.node == lineView.text) { - lineView.node = elt("div", null, null, "position: relative"); - if (lineView.text.parentNode) - lineView.text.parentNode.replaceChild(lineView.node, lineView.text); - lineView.node.appendChild(lineView.text); - if (ie && ie_version < 8) lineView.node.style.zIndex = 2; - } - return lineView.node; - } - - function updateLineBackground(lineView) { - var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; - if (cls) cls += " CodeMirror-linebackground"; - if (lineView.background) { - if (cls) lineView.background.className = cls; - else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; } - } else if (cls) { - var wrap = ensureLineWrapped(lineView); - lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); - } - } - - // Wrapper around buildLineContent which will reuse the structure - // in display.externalMeasured when possible. - function getLineContent(cm, lineView) { - var ext = cm.display.externalMeasured; - if (ext && ext.line == lineView.line) { - cm.display.externalMeasured = null; - lineView.measure = ext.measure; - return ext.built; - } - return buildLineContent(cm, lineView); - } - - // Redraw the line's text. Interacts with the background and text - // classes because the mode may output tokens that influence these - // classes. - function updateLineText(cm, lineView) { - var cls = lineView.text.className; - var built = getLineContent(cm, lineView); - if (lineView.text == lineView.node) lineView.node = built.pre; - lineView.text.parentNode.replaceChild(built.pre, lineView.text); - lineView.text = built.pre; - if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { - lineView.bgClass = built.bgClass; - lineView.textClass = built.textClass; - updateLineClasses(lineView); - } else if (cls) { - lineView.text.className = cls; - } - } - - function updateLineClasses(lineView) { - updateLineBackground(lineView); - if (lineView.line.wrapClass) - ensureLineWrapped(lineView).className = lineView.line.wrapClass; - else if (lineView.node != lineView.text) - lineView.node.className = ""; - var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; - lineView.text.className = textClass || ""; - } - - function updateLineGutter(cm, lineView, lineN, dims) { - if (lineView.gutter) { - lineView.node.removeChild(lineView.gutter); - lineView.gutter = null; - } - if (lineView.gutterBackground) { - lineView.node.removeChild(lineView.gutterBackground); - lineView.gutterBackground = null; - } - if (lineView.line.gutterClass) { - var wrap = ensureLineWrapped(lineView); - lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass, - "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + - "px; width: " + dims.gutterTotalWidth + "px"); - wrap.insertBefore(lineView.gutterBackground, lineView.text); - } - var markers = lineView.line.gutterMarkers; - if (cm.options.lineNumbers || markers) { - var wrap = ensureLineWrapped(lineView); - var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", "left: " + - (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"); - cm.display.input.setUneditable(gutterWrap); - wrap.insertBefore(gutterWrap, lineView.text); - if (lineView.line.gutterClass) - gutterWrap.className += " " + lineView.line.gutterClass; - if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) - lineView.lineNumber = gutterWrap.appendChild( - elt("div", lineNumberFor(cm.options, lineN), - "CodeMirror-linenumber CodeMirror-gutter-elt", - "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " - + cm.display.lineNumInnerWidth + "px")); - if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) { - var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id]; - if (found) - gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " + - dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px")); - } - } - } - - function updateLineWidgets(cm, lineView, dims) { - if (lineView.alignable) lineView.alignable = null; - for (var node = lineView.node.firstChild, next; node; node = next) { - var next = node.nextSibling; - if (node.className == "CodeMirror-linewidget") - lineView.node.removeChild(node); - } - insertLineWidgets(cm, lineView, dims); - } - - // Build a line's DOM representation from scratch - function buildLineElement(cm, lineView, lineN, dims) { - var built = getLineContent(cm, lineView); - lineView.text = lineView.node = built.pre; - if (built.bgClass) lineView.bgClass = built.bgClass; - if (built.textClass) lineView.textClass = built.textClass; - - updateLineClasses(lineView); - updateLineGutter(cm, lineView, lineN, dims); - insertLineWidgets(cm, lineView, dims); - return lineView.node; - } - - // A lineView may contain multiple logical lines (when merged by - // collapsed spans). The widgets for all of them need to be drawn. - function insertLineWidgets(cm, lineView, dims) { - insertLineWidgetsFor(cm, lineView.line, lineView, dims, true); - if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++) - insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); - } - - function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) { - if (!line.widgets) return; - var wrap = ensureLineWrapped(lineView); - for (var i = 0, ws = line.widgets; i < ws.length; ++i) { - var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget"); - if (!widget.handleMouseEvents) node.setAttribute("cm-ignore-events", "true"); - positionLineWidget(widget, node, lineView, dims); - cm.display.input.setUneditable(node); - if (allowAbove && widget.above) - wrap.insertBefore(node, lineView.gutter || lineView.text); - else - wrap.appendChild(node); - signalLater(widget, "redraw"); - } - } - - function positionLineWidget(widget, node, lineView, dims) { - if (widget.noHScroll) { - (lineView.alignable || (lineView.alignable = [])).push(node); - var width = dims.wrapperWidth; - node.style.left = dims.fixedPos + "px"; - if (!widget.coverGutter) { - width -= dims.gutterTotalWidth; - node.style.paddingLeft = dims.gutterTotalWidth + "px"; - } - node.style.width = width + "px"; - } - if (widget.coverGutter) { - node.style.zIndex = 5; - node.style.position = "relative"; - if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px"; - } - } - - // POSITION OBJECT - - // A Pos instance represents a position within the text. - var Pos = CodeMirror.Pos = function(line, ch) { - if (!(this instanceof Pos)) return new Pos(line, ch); - this.line = line; this.ch = ch; - }; - - // Compare two positions, return 0 if they are the same, a negative - // number when a is less, and a positive number otherwise. - var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; }; - - function copyPos(x) {return Pos(x.line, x.ch);} - function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; } - function minPos(a, b) { return cmp(a, b) < 0 ? a : b; } - - // INPUT HANDLING - - function ensureFocus(cm) { - if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); } - } - - // This will be set to a {lineWise: bool, text: [string]} object, so - // that, when pasting, we know what kind of selections the copied - // text was made out of. - var lastCopied = null; - - function applyTextInput(cm, inserted, deleted, sel, origin) { - var doc = cm.doc; - cm.display.shift = false; - if (!sel) sel = doc.sel; - - var paste = cm.state.pasteIncoming || origin == "paste"; - var textLines = doc.splitLines(inserted), multiPaste = null - // When pasing N lines into N selections, insert one line per selection - if (paste && sel.ranges.length > 1) { - if (lastCopied && lastCopied.text.join("\n") == inserted) { - if (sel.ranges.length % lastCopied.text.length == 0) { - multiPaste = []; - for (var i = 0; i < lastCopied.text.length; i++) - multiPaste.push(doc.splitLines(lastCopied.text[i])); - } - } else if (textLines.length == sel.ranges.length) { - multiPaste = map(textLines, function(l) { return [l]; }); - } - } - - // Normal behavior is to insert the new text into every selection - for (var i = sel.ranges.length - 1; i >= 0; i--) { - var range = sel.ranges[i]; - var from = range.from(), to = range.to(); - if (range.empty()) { - if (deleted && deleted > 0) // Handle deletion - from = Pos(from.line, from.ch - deleted); - else if (cm.state.overwrite && !paste) // Handle overwrite - to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); - else if (lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted) - from = to = Pos(from.line, 0) - } - var updateInput = cm.curOp.updateInput; - var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines, - origin: origin || (paste ? "paste" : cm.state.cutIncoming ? "cut" : "+input")}; - makeChange(cm.doc, changeEvent); - signalLater(cm, "inputRead", cm, changeEvent); - } - if (inserted && !paste) - triggerElectric(cm, inserted); - - ensureCursorVisible(cm); - cm.curOp.updateInput = updateInput; - cm.curOp.typing = true; - cm.state.pasteIncoming = cm.state.cutIncoming = false; - } - - function handlePaste(e, cm) { - var pasted = e.clipboardData && e.clipboardData.getData("Text"); - if (pasted) { - e.preventDefault(); - if (!cm.isReadOnly() && !cm.options.disableInput) - runInOp(cm, function() { applyTextInput(cm, pasted, 0, null, "paste"); }); - return true; - } - } - - function triggerElectric(cm, inserted) { - // When an 'electric' character is inserted, immediately trigger a reindent - if (!cm.options.electricChars || !cm.options.smartIndent) return; - var sel = cm.doc.sel; - - for (var i = sel.ranges.length - 1; i >= 0; i--) { - var range = sel.ranges[i]; - if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) continue; - var mode = cm.getModeAt(range.head); - var indented = false; - if (mode.electricChars) { - for (var j = 0; j < mode.electricChars.length; j++) - if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { - indented = indentLine(cm, range.head.line, "smart"); - break; - } - } else if (mode.electricInput) { - if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch))) - indented = indentLine(cm, range.head.line, "smart"); - } - if (indented) signalLater(cm, "electricInput", cm, range.head.line); - } - } - - function copyableRanges(cm) { - var text = [], ranges = []; - for (var i = 0; i < cm.doc.sel.ranges.length; i++) { - var line = cm.doc.sel.ranges[i].head.line; - var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)}; - ranges.push(lineRange); - text.push(cm.getRange(lineRange.anchor, lineRange.head)); - } - return {text: text, ranges: ranges}; - } - - function disableBrowserMagic(field, spellcheck) { - field.setAttribute("autocorrect", "off"); - field.setAttribute("autocapitalize", "off"); - field.setAttribute("spellcheck", !!spellcheck); - } - - // TEXTAREA INPUT STYLE - - function TextareaInput(cm) { - this.cm = cm; - // See input.poll and input.reset - this.prevInput = ""; - - // Flag that indicates whether we expect input to appear real soon - // now (after some event like 'keypress' or 'input') and are - // polling intensively. - this.pollingFast = false; - // Self-resetting timeout for the poller - this.polling = new Delayed(); - // Tracks when input.reset has punted to just putting a short - // string into the textarea instead of the full selection. - this.inaccurateSelection = false; - // Used to work around IE issue with selection being forgotten when focus moves away from textarea - this.hasSelection = false; - this.composing = null; - }; - - function hiddenTextarea() { - var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"); - var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); - // The textarea is kept positioned near the cursor to prevent the - // fact that it'll be scrolled into view on input from scrolling - // our fake cursor out of view. On webkit, when wrap=off, paste is - // very slow. So make the area wide instead. - if (webkit) te.style.width = "1000px"; - else te.setAttribute("wrap", "off"); - // If border: 0; -- iOS fails to open keyboard (issue #1287) - if (ios) te.style.border = "1px solid black"; - disableBrowserMagic(te); - return div; - } - - TextareaInput.prototype = copyObj({ - init: function(display) { - var input = this, cm = this.cm; - - // Wraps and hides input textarea - var div = this.wrapper = hiddenTextarea(); - // The semihidden textarea that is focused when the editor is - // focused, and receives input. - var te = this.textarea = div.firstChild; - display.wrapper.insertBefore(div, display.wrapper.firstChild); - - // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore) - if (ios) te.style.width = "0px"; - - on(te, "input", function() { - if (ie && ie_version >= 9 && input.hasSelection) input.hasSelection = null; - input.poll(); - }); - - on(te, "paste", function(e) { - if (signalDOMEvent(cm, e) || handlePaste(e, cm)) return - - cm.state.pasteIncoming = true; - input.fastPoll(); - }); - - function prepareCopyCut(e) { - if (signalDOMEvent(cm, e)) return - if (cm.somethingSelected()) { - lastCopied = {lineWise: false, text: cm.getSelections()}; - if (input.inaccurateSelection) { - input.prevInput = ""; - input.inaccurateSelection = false; - te.value = lastCopied.text.join("\n"); - selectInput(te); - } - } else if (!cm.options.lineWiseCopyCut) { - return; - } else { - var ranges = copyableRanges(cm); - lastCopied = {lineWise: true, text: ranges.text}; - if (e.type == "cut") { - cm.setSelections(ranges.ranges, null, sel_dontScroll); - } else { - input.prevInput = ""; - te.value = ranges.text.join("\n"); - selectInput(te); - } - } - if (e.type == "cut") cm.state.cutIncoming = true; - } - on(te, "cut", prepareCopyCut); - on(te, "copy", prepareCopyCut); - - on(display.scroller, "paste", function(e) { - if (eventInWidget(display, e) || signalDOMEvent(cm, e)) return; - cm.state.pasteIncoming = true; - input.focus(); - }); - - // Prevent normal selection in the editor (we handle our own) - on(display.lineSpace, "selectstart", function(e) { - if (!eventInWidget(display, e)) e_preventDefault(e); - }); - - on(te, "compositionstart", function() { - var start = cm.getCursor("from"); - if (input.composing) input.composing.range.clear() - input.composing = { - start: start, - range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"}) - }; - }); - on(te, "compositionend", function() { - if (input.composing) { - input.poll(); - input.composing.range.clear(); - input.composing = null; - } - }); - }, - - prepareSelection: function() { - // Redraw the selection and/or cursor - var cm = this.cm, display = cm.display, doc = cm.doc; - var result = prepareSelection(cm); - - // Move the hidden textarea near the cursor to prevent scrolling artifacts - if (cm.options.moveInputWithCursor) { - var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); - var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect(); - result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, - headPos.top + lineOff.top - wrapOff.top)); - result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, - headPos.left + lineOff.left - wrapOff.left)); - } - - return result; - }, - - showSelection: function(drawn) { - var cm = this.cm, display = cm.display; - removeChildrenAndAdd(display.cursorDiv, drawn.cursors); - removeChildrenAndAdd(display.selectionDiv, drawn.selection); - if (drawn.teTop != null) { - this.wrapper.style.top = drawn.teTop + "px"; - this.wrapper.style.left = drawn.teLeft + "px"; - } - }, - - // Reset the input to correspond to the selection (or to be empty, - // when not typing and nothing is selected) - reset: function(typing) { - if (this.contextMenuPending) return; - var minimal, selected, cm = this.cm, doc = cm.doc; - if (cm.somethingSelected()) { - this.prevInput = ""; - var range = doc.sel.primary(); - minimal = hasCopyEvent && - (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000); - var content = minimal ? "-" : selected || cm.getSelection(); - this.textarea.value = content; - if (cm.state.focused) selectInput(this.textarea); - if (ie && ie_version >= 9) this.hasSelection = content; - } else if (!typing) { - this.prevInput = this.textarea.value = ""; - if (ie && ie_version >= 9) this.hasSelection = null; - } - this.inaccurateSelection = minimal; - }, - - getField: function() { return this.textarea; }, - - supportsTouch: function() { return false; }, - - focus: function() { - if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { - try { this.textarea.focus(); } - catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM - } - }, - - blur: function() { this.textarea.blur(); }, - - resetPosition: function() { - this.wrapper.style.top = this.wrapper.style.left = 0; - }, - - receivedFocus: function() { this.slowPoll(); }, - - // Poll for input changes, using the normal rate of polling. This - // runs as long as the editor is focused. - slowPoll: function() { - var input = this; - if (input.pollingFast) return; - input.polling.set(this.cm.options.pollInterval, function() { - input.poll(); - if (input.cm.state.focused) input.slowPoll(); - }); - }, - - // When an event has just come in that is likely to add or change - // something in the input textarea, we poll faster, to ensure that - // the change appears on the screen quickly. - fastPoll: function() { - var missed = false, input = this; - input.pollingFast = true; - function p() { - var changed = input.poll(); - if (!changed && !missed) {missed = true; input.polling.set(60, p);} - else {input.pollingFast = false; input.slowPoll();} - } - input.polling.set(20, p); - }, - - // Read input from the textarea, and update the document to match. - // When something is selected, it is present in the textarea, and - // selected (unless it is huge, in which case a placeholder is - // used). When nothing is selected, the cursor sits after previously - // seen text (can be empty), which is stored in prevInput (we must - // not reset the textarea when typing, because that breaks IME). - poll: function() { - var cm = this.cm, input = this.textarea, prevInput = this.prevInput; - // Since this is called a *lot*, try to bail out as cheaply as - // possible when it is clear that nothing happened. hasSelection - // will be the case when there is a lot of text in the textarea, - // in which case reading its value would be expensive. - if (this.contextMenuPending || !cm.state.focused || - (hasSelection(input) && !prevInput && !this.composing) || - cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) - return false; - - var text = input.value; - // If nothing changed, bail. - if (text == prevInput && !cm.somethingSelected()) return false; - // Work around nonsensical selection resetting in IE9/10, and - // inexplicable appearance of private area unicode characters on - // some key combos in Mac (#2689). - if (ie && ie_version >= 9 && this.hasSelection === text || - mac && /[\uf700-\uf7ff]/.test(text)) { - cm.display.input.reset(); - return false; - } - - if (cm.doc.sel == cm.display.selForContextMenu) { - var first = text.charCodeAt(0); - if (first == 0x200b && !prevInput) prevInput = "\u200b"; - if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo"); } - } - // Find the part of the input that is actually new - var same = 0, l = Math.min(prevInput.length, text.length); - while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same; - - var self = this; - runInOp(cm, function() { - applyTextInput(cm, text.slice(same), prevInput.length - same, - null, self.composing ? "*compose" : null); - - // Don't leave long text in the textarea, since it makes further polling slow - if (text.length > 1000 || text.indexOf("\n") > -1) input.value = self.prevInput = ""; - else self.prevInput = text; - - if (self.composing) { - self.composing.range.clear(); - self.composing.range = cm.markText(self.composing.start, cm.getCursor("to"), - {className: "CodeMirror-composing"}); - } - }); - return true; - }, - - ensurePolled: function() { - if (this.pollingFast && this.poll()) this.pollingFast = false; - }, - - onKeyPress: function() { - if (ie && ie_version >= 9) this.hasSelection = null; - this.fastPoll(); - }, - - onContextMenu: function(e) { - var input = this, cm = input.cm, display = cm.display, te = input.textarea; - var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; - if (!pos || presto) return; // Opera is difficult. - - // Reset the current text selection only if the click is done outside of the selection - // and 'resetSelectionOnContextMenu' option is true. - var reset = cm.options.resetSelectionOnContextMenu; - if (reset && cm.doc.sel.contains(pos) == -1) - operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); - - var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText; - input.wrapper.style.cssText = "position: absolute" - var wrapperBox = input.wrapper.getBoundingClientRect() - te.style.cssText = "position: absolute; width: 30px; height: 30px; top: " + (e.clientY - wrapperBox.top - 5) + - "px; left: " + (e.clientX - wrapperBox.left - 5) + "px; z-index: 1000; background: " + - (ie ? "rgba(255, 255, 255, .05)" : "transparent") + - "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; - if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712) - display.input.focus(); - if (webkit) window.scrollTo(null, oldScrollY); - display.input.reset(); - // Adds "Select all" to context menu in FF - if (!cm.somethingSelected()) te.value = input.prevInput = " "; - input.contextMenuPending = true; - display.selForContextMenu = cm.doc.sel; - clearTimeout(display.detectingSelectAll); - - // Select-all will be greyed out if there's nothing to select, so - // this adds a zero-width space so that we can later check whether - // it got selected. - function prepareSelectAllHack() { - if (te.selectionStart != null) { - var selected = cm.somethingSelected(); - var extval = "\u200b" + (selected ? te.value : ""); - te.value = "\u21da"; // Used to catch context-menu undo - te.value = extval; - input.prevInput = selected ? "" : "\u200b"; - te.selectionStart = 1; te.selectionEnd = extval.length; - // Re-set this, in case some other handler touched the - // selection in the meantime. - display.selForContextMenu = cm.doc.sel; - } - } - function rehide() { - input.contextMenuPending = false; - input.wrapper.style.cssText = oldWrapperCSS - te.style.cssText = oldCSS; - if (ie && ie_version < 9) display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); - - // Try to detect the user choosing select-all - if (te.selectionStart != null) { - if (!ie || (ie && ie_version < 9)) prepareSelectAllHack(); - var i = 0, poll = function() { - if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 && - te.selectionEnd > 0 && input.prevInput == "\u200b") - operation(cm, commands.selectAll)(cm); - else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500); - else display.input.reset(); - }; - display.detectingSelectAll = setTimeout(poll, 200); - } - } - - if (ie && ie_version >= 9) prepareSelectAllHack(); - if (captureRightClick) { - e_stop(e); - var mouseup = function() { - off(window, "mouseup", mouseup); - setTimeout(rehide, 20); - }; - on(window, "mouseup", mouseup); - } else { - setTimeout(rehide, 50); - } - }, - - readOnlyChanged: function(val) { - if (!val) this.reset(); - }, - - setUneditable: nothing, - - needsContentAttribute: false - }, TextareaInput.prototype); - - // CONTENTEDITABLE INPUT STYLE - - function ContentEditableInput(cm) { - this.cm = cm; - this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null; - this.polling = new Delayed(); - this.gracePeriod = false; - } - - ContentEditableInput.prototype = copyObj({ - init: function(display) { - var input = this, cm = input.cm; - var div = input.div = display.lineDiv; - disableBrowserMagic(div, cm.options.spellcheck); - - on(div, "paste", function(e) { - if (signalDOMEvent(cm, e) || handlePaste(e, cm)) return - // IE doesn't fire input events, so we schedule a read for the pasted content in this way - if (ie_version <= 11) setTimeout(operation(cm, function() { - if (!input.pollContent()) regChange(cm); - }), 20) - }) - - on(div, "compositionstart", function(e) { - var data = e.data; - input.composing = {sel: cm.doc.sel, data: data, startData: data}; - if (!data) return; - var prim = cm.doc.sel.primary(); - var line = cm.getLine(prim.head.line); - var found = line.indexOf(data, Math.max(0, prim.head.ch - data.length)); - if (found > -1 && found <= prim.head.ch) - input.composing.sel = simpleSelection(Pos(prim.head.line, found), - Pos(prim.head.line, found + data.length)); - }); - on(div, "compositionupdate", function(e) { - input.composing.data = e.data; - }); - on(div, "compositionend", function(e) { - var ours = input.composing; - if (!ours) return; - if (e.data != ours.startData && !/\u200b/.test(e.data)) - ours.data = e.data; - // Need a small delay to prevent other code (input event, - // selection polling) from doing damage when fired right after - // compositionend. - setTimeout(function() { - if (!ours.handled) - input.applyComposition(ours); - if (input.composing == ours) - input.composing = null; - }, 50); - }); - - on(div, "touchstart", function() { - input.forceCompositionEnd(); - }); - - on(div, "input", function() { - if (input.composing) return; - if (cm.isReadOnly() || !input.pollContent()) - runInOp(input.cm, function() {regChange(cm);}); - }); - - function onCopyCut(e) { - if (signalDOMEvent(cm, e)) return - if (cm.somethingSelected()) { - lastCopied = {lineWise: false, text: cm.getSelections()}; - if (e.type == "cut") cm.replaceSelection("", null, "cut"); - } else if (!cm.options.lineWiseCopyCut) { - return; - } else { - var ranges = copyableRanges(cm); - lastCopied = {lineWise: true, text: ranges.text}; - if (e.type == "cut") { - cm.operation(function() { - cm.setSelections(ranges.ranges, 0, sel_dontScroll); - cm.replaceSelection("", null, "cut"); - }); - } - } - if (e.clipboardData) { - e.clipboardData.clearData(); - var content = lastCopied.text.join("\n") - // iOS exposes the clipboard API, but seems to discard content inserted into it - e.clipboardData.setData("Text", content); - if (e.clipboardData.getData("Text") == content) { - e.preventDefault(); - return - } - } - // Old-fashioned briefly-focus-a-textarea hack - var kludge = hiddenTextarea(), te = kludge.firstChild; - cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); - te.value = lastCopied.text.join("\n"); - var hadFocus = document.activeElement; - selectInput(te); - setTimeout(function() { - cm.display.lineSpace.removeChild(kludge); - hadFocus.focus(); - if (hadFocus == div) input.showPrimarySelection() - }, 50); - } - on(div, "copy", onCopyCut); - on(div, "cut", onCopyCut); - }, - - prepareSelection: function() { - var result = prepareSelection(this.cm, false); - result.focus = this.cm.state.focused; - return result; - }, - - showSelection: function(info, takeFocus) { - if (!info || !this.cm.display.view.length) return; - if (info.focus || takeFocus) this.showPrimarySelection(); - this.showMultipleSelections(info); - }, - - showPrimarySelection: function() { - var sel = window.getSelection(), prim = this.cm.doc.sel.primary(); - var curAnchor = domToPos(this.cm, sel.anchorNode, sel.anchorOffset); - var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset); - if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad && - cmp(minPos(curAnchor, curFocus), prim.from()) == 0 && - cmp(maxPos(curAnchor, curFocus), prim.to()) == 0) - return; - - var start = posToDOM(this.cm, prim.from()); - var end = posToDOM(this.cm, prim.to()); - if (!start && !end) return; - - var view = this.cm.display.view; - var old = sel.rangeCount && sel.getRangeAt(0); - if (!start) { - start = {node: view[0].measure.map[2], offset: 0}; - } else if (!end) { // FIXME dangerously hacky - var measure = view[view.length - 1].measure; - var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map; - end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]}; - } - - try { var rng = range(start.node, start.offset, end.offset, end.node); } - catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible - if (rng) { - if (!gecko && this.cm.state.focused) { - sel.collapse(start.node, start.offset); - if (!rng.collapsed) sel.addRange(rng); - } else { - sel.removeAllRanges(); - sel.addRange(rng); - } - if (old && sel.anchorNode == null) sel.addRange(old); - else if (gecko) this.startGracePeriod(); - } - this.rememberSelection(); - }, - - startGracePeriod: function() { - var input = this; - clearTimeout(this.gracePeriod); - this.gracePeriod = setTimeout(function() { - input.gracePeriod = false; - if (input.selectionChanged()) - input.cm.operation(function() { input.cm.curOp.selectionChanged = true; }); - }, 20); - }, - - showMultipleSelections: function(info) { - removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors); - removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection); - }, - - rememberSelection: function() { - var sel = window.getSelection(); - this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset; - this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset; - }, - - selectionInEditor: function() { - var sel = window.getSelection(); - if (!sel.rangeCount) return false; - var node = sel.getRangeAt(0).commonAncestorContainer; - return contains(this.div, node); - }, - - focus: function() { - if (this.cm.options.readOnly != "nocursor") this.div.focus(); - }, - blur: function() { this.div.blur(); }, - getField: function() { return this.div; }, - - supportsTouch: function() { return true; }, - - receivedFocus: function() { - var input = this; - if (this.selectionInEditor()) - this.pollSelection(); - else - runInOp(this.cm, function() { input.cm.curOp.selectionChanged = true; }); - - function poll() { - if (input.cm.state.focused) { - input.pollSelection(); - input.polling.set(input.cm.options.pollInterval, poll); - } - } - this.polling.set(this.cm.options.pollInterval, poll); - }, - - selectionChanged: function() { - var sel = window.getSelection(); - return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset || - sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset; - }, - - pollSelection: function() { - if (!this.composing && !this.gracePeriod && this.selectionChanged()) { - var sel = window.getSelection(), cm = this.cm; - this.rememberSelection(); - var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); - var head = domToPos(cm, sel.focusNode, sel.focusOffset); - if (anchor && head) runInOp(cm, function() { - setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll); - if (anchor.bad || head.bad) cm.curOp.selectionChanged = true; - }); - } - }, - - pollContent: function() { - var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary(); - var from = sel.from(), to = sel.to(); - if (from.line < display.viewFrom || to.line > display.viewTo - 1) return false; - - var fromIndex; - if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) { - var fromLine = lineNo(display.view[0].line); - var fromNode = display.view[0].node; - } else { - var fromLine = lineNo(display.view[fromIndex].line); - var fromNode = display.view[fromIndex - 1].node.nextSibling; - } - var toIndex = findViewIndex(cm, to.line); - if (toIndex == display.view.length - 1) { - var toLine = display.viewTo - 1; - var toNode = display.lineDiv.lastChild; - } else { - var toLine = lineNo(display.view[toIndex + 1].line) - 1; - var toNode = display.view[toIndex + 1].node.previousSibling; - } - - var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine)); - var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length)); - while (newText.length > 1 && oldText.length > 1) { - if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; } - else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; } - else break; - } - - var cutFront = 0, cutEnd = 0; - var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length); - while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront)) - ++cutFront; - var newBot = lst(newText), oldBot = lst(oldText); - var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0), - oldBot.length - (oldText.length == 1 ? cutFront : 0)); - while (cutEnd < maxCutEnd && - newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) - ++cutEnd; - - newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd); - newText[0] = newText[0].slice(cutFront); - - var chFrom = Pos(fromLine, cutFront); - var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0); - if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) { - replaceRange(cm.doc, newText, chFrom, chTo, "+input"); - return true; - } - }, - - ensurePolled: function() { - this.forceCompositionEnd(); - }, - reset: function() { - this.forceCompositionEnd(); - }, - forceCompositionEnd: function() { - if (!this.composing || this.composing.handled) return; - this.applyComposition(this.composing); - this.composing.handled = true; - this.div.blur(); - this.div.focus(); - }, - applyComposition: function(composing) { - if (this.cm.isReadOnly()) - operation(this.cm, regChange)(this.cm) - else if (composing.data && composing.data != composing.startData) - operation(this.cm, applyTextInput)(this.cm, composing.data, 0, composing.sel); - }, - - setUneditable: function(node) { - node.contentEditable = "false" - }, - - onKeyPress: function(e) { - e.preventDefault(); - if (!this.cm.isReadOnly()) - operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); - }, - - readOnlyChanged: function(val) { - this.div.contentEditable = String(val != "nocursor") - }, - - onContextMenu: nothing, - resetPosition: nothing, - - needsContentAttribute: true - }, ContentEditableInput.prototype); - - function posToDOM(cm, pos) { - var view = findViewForLine(cm, pos.line); - if (!view || view.hidden) return null; - var line = getLine(cm.doc, pos.line); - var info = mapFromLineView(view, line, pos.line); - - var order = getOrder(line), side = "left"; - if (order) { - var partPos = getBidiPartAt(order, pos.ch); - side = partPos % 2 ? "right" : "left"; - } - var result = nodeAndOffsetInLineMap(info.map, pos.ch, side); - result.offset = result.collapse == "right" ? result.end : result.start; - return result; - } - - function badPos(pos, bad) { if (bad) pos.bad = true; return pos; } - - function domToPos(cm, node, offset) { - var lineNode; - if (node == cm.display.lineDiv) { - lineNode = cm.display.lineDiv.childNodes[offset]; - if (!lineNode) return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true); - node = null; offset = 0; - } else { - for (lineNode = node;; lineNode = lineNode.parentNode) { - if (!lineNode || lineNode == cm.display.lineDiv) return null; - if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) break; - } - } - for (var i = 0; i < cm.display.view.length; i++) { - var lineView = cm.display.view[i]; - if (lineView.node == lineNode) - return locateNodeInLineView(lineView, node, offset); - } - } - - function locateNodeInLineView(lineView, node, offset) { - var wrapper = lineView.text.firstChild, bad = false; - if (!node || !contains(wrapper, node)) return badPos(Pos(lineNo(lineView.line), 0), true); - if (node == wrapper) { - bad = true; - node = wrapper.childNodes[offset]; - offset = 0; - if (!node) { - var line = lineView.rest ? lst(lineView.rest) : lineView.line; - return badPos(Pos(lineNo(line), line.text.length), bad); - } - } - - var textNode = node.nodeType == 3 ? node : null, topNode = node; - if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) { - textNode = node.firstChild; - if (offset) offset = textNode.nodeValue.length; - } - while (topNode.parentNode != wrapper) topNode = topNode.parentNode; - var measure = lineView.measure, maps = measure.maps; - - function find(textNode, topNode, offset) { - for (var i = -1; i < (maps ? maps.length : 0); i++) { - var map = i < 0 ? measure.map : maps[i]; - for (var j = 0; j < map.length; j += 3) { - var curNode = map[j + 2]; - if (curNode == textNode || curNode == topNode) { - var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]); - var ch = map[j] + offset; - if (offset < 0 || curNode != textNode) ch = map[j + (offset ? 1 : 0)]; - return Pos(line, ch); - } - } - } - } - var found = find(textNode, topNode, offset); - if (found) return badPos(found, bad); - - // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems - for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) { - found = find(after, after.firstChild, 0); - if (found) - return badPos(Pos(found.line, found.ch - dist), bad); - else - dist += after.textContent.length; - } - for (var before = topNode.previousSibling, dist = offset; before; before = before.previousSibling) { - found = find(before, before.firstChild, -1); - if (found) - return badPos(Pos(found.line, found.ch + dist), bad); - else - dist += before.textContent.length; - } - } - - function domTextBetween(cm, from, to, fromLine, toLine) { - var text = "", closing = false, lineSep = cm.doc.lineSeparator(); - function recognizeMarker(id) { return function(marker) { return marker.id == id; }; } - function walk(node) { - if (node.nodeType == 1) { - var cmText = node.getAttribute("cm-text"); - if (cmText != null) { - if (cmText == "") cmText = node.textContent.replace(/\u200b/g, ""); - text += cmText; - return; - } - var markerID = node.getAttribute("cm-marker"), range; - if (markerID) { - var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID)); - if (found.length && (range = found[0].find())) - text += getBetween(cm.doc, range.from, range.to).join(lineSep); - return; - } - if (node.getAttribute("contenteditable") == "false") return; - for (var i = 0; i < node.childNodes.length; i++) - walk(node.childNodes[i]); - if (/^(pre|div|p)$/i.test(node.nodeName)) - closing = true; - } else if (node.nodeType == 3) { - var val = node.nodeValue; - if (!val) return; - if (closing) { - text += lineSep; - closing = false; - } - text += val; - } - } - for (;;) { - walk(from); - if (from == to) break; - from = from.nextSibling; - } - return text; - } - - CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput}; - - // SELECTION / CURSOR - - // Selection objects are immutable. A new one is created every time - // the selection changes. A selection is one or more non-overlapping - // (and non-touching) ranges, sorted, and an integer that indicates - // which one is the primary selection (the one that's scrolled into - // view, that getCursor returns, etc). - function Selection(ranges, primIndex) { - this.ranges = ranges; - this.primIndex = primIndex; - } - - Selection.prototype = { - primary: function() { return this.ranges[this.primIndex]; }, - equals: function(other) { - if (other == this) return true; - if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false; - for (var i = 0; i < this.ranges.length; i++) { - var here = this.ranges[i], there = other.ranges[i]; - if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false; - } - return true; - }, - deepCopy: function() { - for (var out = [], i = 0; i < this.ranges.length; i++) - out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); - return new Selection(out, this.primIndex); - }, - somethingSelected: function() { - for (var i = 0; i < this.ranges.length; i++) - if (!this.ranges[i].empty()) return true; - return false; - }, - contains: function(pos, end) { - if (!end) end = pos; - for (var i = 0; i < this.ranges.length; i++) { - var range = this.ranges[i]; - if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) - return i; - } - return -1; - } - }; - - function Range(anchor, head) { - this.anchor = anchor; this.head = head; - } - - Range.prototype = { - from: function() { return minPos(this.anchor, this.head); }, - to: function() { return maxPos(this.anchor, this.head); }, - empty: function() { - return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch; - } - }; - - // Take an unsorted, potentially overlapping set of ranges, and - // build a selection out of it. 'Consumes' ranges array (modifying - // it). - function normalizeSelection(ranges, primIndex) { - var prim = ranges[primIndex]; - ranges.sort(function(a, b) { return cmp(a.from(), b.from()); }); - primIndex = indexOf(ranges, prim); - for (var i = 1; i < ranges.length; i++) { - var cur = ranges[i], prev = ranges[i - 1]; - if (cmp(prev.to(), cur.from()) >= 0) { - var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to()); - var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; - if (i <= primIndex) --primIndex; - ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); - } - } - return new Selection(ranges, primIndex); - } - - function simpleSelection(anchor, head) { - return new Selection([new Range(anchor, head || anchor)], 0); - } - - // Most of the external API clips given positions to make sure they - // actually exist within the document. - function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));} - function clipPos(doc, pos) { - if (pos.line < doc.first) return Pos(doc.first, 0); - var last = doc.first + doc.size - 1; - if (pos.line > last) return Pos(last, getLine(doc, last).text.length); - return clipToLen(pos, getLine(doc, pos.line).text.length); - } - function clipToLen(pos, linelen) { - var ch = pos.ch; - if (ch == null || ch > linelen) return Pos(pos.line, linelen); - else if (ch < 0) return Pos(pos.line, 0); - else return pos; - } - function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;} - function clipPosArray(doc, array) { - for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]); - return out; - } - - // SELECTION UPDATES - - // The 'scroll' parameter given to many of these indicated whether - // the new cursor position should be scrolled into view after - // modifying the selection. - - // If shift is held or the extend flag is set, extends a range to - // include a given position (and optionally a second position). - // Otherwise, simply returns the range between the given positions. - // Used for cursor motion and such. - function extendRange(doc, range, head, other) { - if (doc.cm && doc.cm.display.shift || doc.extend) { - var anchor = range.anchor; - if (other) { - var posBefore = cmp(head, anchor) < 0; - if (posBefore != (cmp(other, anchor) < 0)) { - anchor = head; - head = other; - } else if (posBefore != (cmp(head, other) < 0)) { - head = other; - } - } - return new Range(anchor, head); - } else { - return new Range(other || head, head); - } - } - - // Extend the primary selection range, discard the rest. - function extendSelection(doc, head, other, options) { - setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options); - } - - // Extend all selections (pos is an array of selections with length - // equal the number of selections) - function extendSelections(doc, heads, options) { - for (var out = [], i = 0; i < doc.sel.ranges.length; i++) - out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null); - var newSel = normalizeSelection(out, doc.sel.primIndex); - setSelection(doc, newSel, options); - } - - // Updates a single range in the selection. - function replaceOneSelection(doc, i, range, options) { - var ranges = doc.sel.ranges.slice(0); - ranges[i] = range; - setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options); - } - - // Reset the selection to a single range. - function setSimpleSelection(doc, anchor, head, options) { - setSelection(doc, simpleSelection(anchor, head), options); - } - - // Give beforeSelectionChange handlers a change to influence a - // selection update. - function filterSelectionChange(doc, sel, options) { - var obj = { - ranges: sel.ranges, - update: function(ranges) { - this.ranges = []; - for (var i = 0; i < ranges.length; i++) - this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), - clipPos(doc, ranges[i].head)); - }, - origin: options && options.origin - }; - signal(doc, "beforeSelectionChange", doc, obj); - if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj); - if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1); - else return sel; - } - - function setSelectionReplaceHistory(doc, sel, options) { - var done = doc.history.done, last = lst(done); - if (last && last.ranges) { - done[done.length - 1] = sel; - setSelectionNoUndo(doc, sel, options); - } else { - setSelection(doc, sel, options); - } - } - - // Set a new selection. - function setSelection(doc, sel, options) { - setSelectionNoUndo(doc, sel, options); - addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); - } - - function setSelectionNoUndo(doc, sel, options) { - if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) - sel = filterSelectionChange(doc, sel, options); - - var bias = options && options.bias || - (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); - setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); - - if (!(options && options.scroll === false) && doc.cm) - ensureCursorVisible(doc.cm); - } - - function setSelectionInner(doc, sel) { - if (sel.equals(doc.sel)) return; - - doc.sel = sel; - - if (doc.cm) { - doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true; - signalCursorActivity(doc.cm); - } - signalLater(doc, "cursorActivity", doc); - } - - // Verify that the selection does not partially select any atomic - // marked ranges. - function reCheckSelection(doc) { - setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll); - } - - // Return a selection that does not partially select any atomic - // ranges. - function skipAtomicInSelection(doc, sel, bias, mayClear) { - var out; - for (var i = 0; i < sel.ranges.length; i++) { - var range = sel.ranges[i]; - var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i]; - var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear); - var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear); - if (out || newAnchor != range.anchor || newHead != range.head) { - if (!out) out = sel.ranges.slice(0, i); - out[i] = new Range(newAnchor, newHead); - } - } - return out ? normalizeSelection(out, sel.primIndex) : sel; - } - - function skipAtomicInner(doc, pos, oldPos, dir, mayClear) { - var line = getLine(doc, pos.line); - if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) { - var sp = line.markedSpans[i], m = sp.marker; - if ((sp.from == null || (m.inclusiveLeft ? sp.from <= pos.ch : sp.from < pos.ch)) && - (sp.to == null || (m.inclusiveRight ? sp.to >= pos.ch : sp.to > pos.ch))) { - if (mayClear) { - signal(m, "beforeCursorEnter"); - if (m.explicitlyCleared) { - if (!line.markedSpans) break; - else {--i; continue;} - } - } - if (!m.atomic) continue; - - if (oldPos) { - var near = m.find(dir < 0 ? 1 : -1), diff; - if (dir < 0 ? m.inclusiveRight : m.inclusiveLeft) - near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); - if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0)) - return skipAtomicInner(doc, near, pos, dir, mayClear); - } - - var far = m.find(dir < 0 ? -1 : 1); - if (dir < 0 ? m.inclusiveLeft : m.inclusiveRight) - far = movePos(doc, far, dir, far.line == pos.line ? line : null); - return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null; - } - } - return pos; - } - - // Ensure a given position is not inside an atomic range. - function skipAtomic(doc, pos, oldPos, bias, mayClear) { - var dir = bias || 1; - var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || - (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) || - skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || - (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true)); - if (!found) { - doc.cantEdit = true; - return Pos(doc.first, 0); - } - return found; - } - - function movePos(doc, pos, dir, line) { - if (dir < 0 && pos.ch == 0) { - if (pos.line > doc.first) return clipPos(doc, Pos(pos.line - 1)); - else return null; - } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) { - if (pos.line < doc.first + doc.size - 1) return Pos(pos.line + 1, 0); - else return null; - } else { - return new Pos(pos.line, pos.ch + dir); - } - } - - // SELECTION DRAWING - - function updateSelection(cm) { - cm.display.input.showSelection(cm.display.input.prepareSelection()); - } - - function prepareSelection(cm, primary) { - var doc = cm.doc, result = {}; - var curFragment = result.cursors = document.createDocumentFragment(); - var selFragment = result.selection = document.createDocumentFragment(); - - for (var i = 0; i < doc.sel.ranges.length; i++) { - if (primary === false && i == doc.sel.primIndex) continue; - var range = doc.sel.ranges[i]; - if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) continue; - var collapsed = range.empty(); - if (collapsed || cm.options.showCursorWhenSelecting) - drawSelectionCursor(cm, range.head, curFragment); - if (!collapsed) - drawSelectionRange(cm, range, selFragment); - } - return result; - } - - // Draws a cursor for the given range - function drawSelectionCursor(cm, head, output) { - var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine); - - var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); - cursor.style.left = pos.left + "px"; - cursor.style.top = pos.top + "px"; - cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; - - if (pos.other) { - // Secondary cursor, shown when on a 'jump' in bi-directional text - var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); - otherCursor.style.display = ""; - otherCursor.style.left = pos.other.left + "px"; - otherCursor.style.top = pos.other.top + "px"; - otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; - } - } - - // Draws the given range as a highlighted selection - function drawSelectionRange(cm, range, output) { - var display = cm.display, doc = cm.doc; - var fragment = document.createDocumentFragment(); - var padding = paddingH(cm.display), leftSide = padding.left; - var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right; - - function add(left, top, width, bottom) { - if (top < 0) top = 0; - top = Math.round(top); - bottom = Math.round(bottom); - fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + - "px; top: " + top + "px; width: " + (width == null ? rightSide - left : width) + - "px; height: " + (bottom - top) + "px")); - } - - function drawForLine(line, fromArg, toArg) { - var lineObj = getLine(doc, line); - var lineLen = lineObj.text.length; - var start, end; - function coords(ch, bias) { - return charCoords(cm, Pos(line, ch), "div", lineObj, bias); - } - - iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) { - var leftPos = coords(from, "left"), rightPos, left, right; - if (from == to) { - rightPos = leftPos; - left = right = leftPos.left; - } else { - rightPos = coords(to - 1, "right"); - if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; } - left = leftPos.left; - right = rightPos.right; - } - if (fromArg == null && from == 0) left = leftSide; - if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part - add(left, leftPos.top, null, leftPos.bottom); - left = leftSide; - if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top); - } - if (toArg == null && to == lineLen) right = rightSide; - if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left) - start = leftPos; - if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right) - end = rightPos; - if (left < leftSide + 1) left = leftSide; - add(left, rightPos.top, right - left, rightPos.bottom); - }); - return {start: start, end: end}; - } - - var sFrom = range.from(), sTo = range.to(); - if (sFrom.line == sTo.line) { - drawForLine(sFrom.line, sFrom.ch, sTo.ch); - } else { - var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line); - var singleVLine = visualLine(fromLine) == visualLine(toLine); - var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; - var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; - if (singleVLine) { - if (leftEnd.top < rightStart.top - 2) { - add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); - add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); - } else { - add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); - } - } - if (leftEnd.bottom < rightStart.top) - add(leftSide, leftEnd.bottom, null, rightStart.top); - } - - output.appendChild(fragment); - } - - // Cursor-blinking - function restartBlink(cm) { - if (!cm.state.focused) return; - var display = cm.display; - clearInterval(display.blinker); - var on = true; - display.cursorDiv.style.visibility = ""; - if (cm.options.cursorBlinkRate > 0) - display.blinker = setInterval(function() { - display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; - }, cm.options.cursorBlinkRate); - else if (cm.options.cursorBlinkRate < 0) - display.cursorDiv.style.visibility = "hidden"; - } - - // HIGHLIGHT WORKER - - function startWorker(cm, time) { - if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo) - cm.state.highlight.set(time, bind(highlightWorker, cm)); - } - - function highlightWorker(cm) { - var doc = cm.doc; - if (doc.frontier < doc.first) doc.frontier = doc.first; - if (doc.frontier >= cm.display.viewTo) return; - var end = +new Date + cm.options.workTime; - var state = copyState(doc.mode, getStateBefore(cm, doc.frontier)); - var changedLines = []; - - doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) { - if (doc.frontier >= cm.display.viewFrom) { // Visible - var oldStyles = line.styles, tooLong = line.text.length > cm.options.maxHighlightLength; - var highlighted = highlightLine(cm, line, tooLong ? copyState(doc.mode, state) : state, true); - line.styles = highlighted.styles; - var oldCls = line.styleClasses, newCls = highlighted.classes; - if (newCls) line.styleClasses = newCls; - else if (oldCls) line.styleClasses = null; - var ischange = !oldStyles || oldStyles.length != line.styles.length || - oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); - for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i]; - if (ischange) changedLines.push(doc.frontier); - line.stateAfter = tooLong ? state : copyState(doc.mode, state); - } else { - if (line.text.length <= cm.options.maxHighlightLength) - processLine(cm, line.text, state); - line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null; - } - ++doc.frontier; - if (+new Date > end) { - startWorker(cm, cm.options.workDelay); - return true; - } - }); - if (changedLines.length) runInOp(cm, function() { - for (var i = 0; i < changedLines.length; i++) - regLineChange(cm, changedLines[i], "text"); - }); - } - - // Finds the line to start with when starting a parse. Tries to - // find a line with a stateAfter, so that it can start with a - // valid state. If that fails, it returns the line with the - // smallest indentation, which tends to need the least context to - // parse correctly. - function findStartLine(cm, n, precise) { - var minindent, minline, doc = cm.doc; - var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); - for (var search = n; search > lim; --search) { - if (search <= doc.first) return doc.first; - var line = getLine(doc, search - 1); - if (line.stateAfter && (!precise || search <= doc.frontier)) return search; - var indented = countColumn(line.text, null, cm.options.tabSize); - if (minline == null || minindent > indented) { - minline = search - 1; - minindent = indented; - } - } - return minline; - } - - function getStateBefore(cm, n, precise) { - var doc = cm.doc, display = cm.display; - if (!doc.mode.startState) return true; - var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter; - if (!state) state = startState(doc.mode); - else state = copyState(doc.mode, state); - doc.iter(pos, n, function(line) { - processLine(cm, line.text, state); - var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo; - line.stateAfter = save ? copyState(doc.mode, state) : null; - ++pos; - }); - if (precise) doc.frontier = pos; - return state; - } - - // POSITION MEASUREMENT - - function paddingTop(display) {return display.lineSpace.offsetTop;} - function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;} - function paddingH(display) { - if (display.cachedPaddingH) return display.cachedPaddingH; - var e = removeChildrenAndAdd(display.measure, elt("pre", "x")); - var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; - var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)}; - if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data; - return data; - } - - function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth; } - function displayWidth(cm) { - return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth; - } - function displayHeight(cm) { - return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight; - } - - // Ensure the lineView.wrapping.heights array is populated. This is - // an array of bottom offsets for the lines that make up a drawn - // line. When lineWrapping is on, there might be more than one - // height. - function ensureLineHeights(cm, lineView, rect) { - var wrapping = cm.options.lineWrapping; - var curWidth = wrapping && displayWidth(cm); - if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { - var heights = lineView.measure.heights = []; - if (wrapping) { - lineView.measure.width = curWidth; - var rects = lineView.text.firstChild.getClientRects(); - for (var i = 0; i < rects.length - 1; i++) { - var cur = rects[i], next = rects[i + 1]; - if (Math.abs(cur.bottom - next.bottom) > 2) - heights.push((cur.bottom + next.top) / 2 - rect.top); - } - } - heights.push(rect.bottom - rect.top); - } - } - - // Find a line map (mapping character offsets to text nodes) and a - // measurement cache for the given line number. (A line view might - // contain multiple lines when collapsed ranges are present.) - function mapFromLineView(lineView, line, lineN) { - if (lineView.line == line) - return {map: lineView.measure.map, cache: lineView.measure.cache}; - for (var i = 0; i < lineView.rest.length; i++) - if (lineView.rest[i] == line) - return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]}; - for (var i = 0; i < lineView.rest.length; i++) - if (lineNo(lineView.rest[i]) > lineN) - return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true}; - } - - // Render a line into the hidden node display.externalMeasured. Used - // when measurement is needed for a line that's not in the viewport. - function updateExternalMeasurement(cm, line) { - line = visualLine(line); - var lineN = lineNo(line); - var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); - view.lineN = lineN; - var built = view.built = buildLineContent(cm, view); - view.text = built.pre; - removeChildrenAndAdd(cm.display.lineMeasure, built.pre); - return view; - } - - // Get a {top, bottom, left, right} box (in line-local coordinates) - // for a given character. - function measureChar(cm, line, ch, bias) { - return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias); - } - - // Find a line view that corresponds to the given line number. - function findViewForLine(cm, lineN) { - if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) - return cm.display.view[findViewIndex(cm, lineN)]; - var ext = cm.display.externalMeasured; - if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) - return ext; - } - - // Measurement can be split in two steps, the set-up work that - // applies to the whole line, and the measurement of the actual - // character. Functions like coordsChar, that need to do a lot of - // measurements in a row, can thus ensure that the set-up work is - // only done once. - function prepareMeasureForLine(cm, line) { - var lineN = lineNo(line); - var view = findViewForLine(cm, lineN); - if (view && !view.text) { - view = null; - } else if (view && view.changes) { - updateLineForChanges(cm, view, lineN, getDimensions(cm)); - cm.curOp.forceUpdate = true; - } - if (!view) - view = updateExternalMeasurement(cm, line); - - var info = mapFromLineView(view, line, lineN); - return { - line: line, view: view, rect: null, - map: info.map, cache: info.cache, before: info.before, - hasHeights: false - }; - } - - // Given a prepared measurement object, measures the position of an - // actual character (or fetches it from the cache). - function measureCharPrepared(cm, prepared, ch, bias, varHeight) { - if (prepared.before) ch = -1; - var key = ch + (bias || ""), found; - if (prepared.cache.hasOwnProperty(key)) { - found = prepared.cache[key]; - } else { - if (!prepared.rect) - prepared.rect = prepared.view.text.getBoundingClientRect(); - if (!prepared.hasHeights) { - ensureLineHeights(cm, prepared.view, prepared.rect); - prepared.hasHeights = true; - } - found = measureCharInner(cm, prepared, ch, bias); - if (!found.bogus) prepared.cache[key] = found; - } - return {left: found.left, right: found.right, - top: varHeight ? found.rtop : found.top, - bottom: varHeight ? found.rbottom : found.bottom}; - } - - var nullRect = {left: 0, right: 0, top: 0, bottom: 0}; - - function nodeAndOffsetInLineMap(map, ch, bias) { - var node, start, end, collapse; - // First, search the line map for the text node corresponding to, - // or closest to, the target character. - for (var i = 0; i < map.length; i += 3) { - var mStart = map[i], mEnd = map[i + 1]; - if (ch < mStart) { - start = 0; end = 1; - collapse = "left"; - } else if (ch < mEnd) { - start = ch - mStart; - end = start + 1; - } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) { - end = mEnd - mStart; - start = end - 1; - if (ch >= mEnd) collapse = "right"; - } - if (start != null) { - node = map[i + 2]; - if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) - collapse = bias; - if (bias == "left" && start == 0) - while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) { - node = map[(i -= 3) + 2]; - collapse = "left"; - } - if (bias == "right" && start == mEnd - mStart) - while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) { - node = map[(i += 3) + 2]; - collapse = "right"; - } - break; - } - } - return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}; - } - - function getUsefulRect(rects, bias) { - var rect = nullRect - if (bias == "left") for (var i = 0; i < rects.length; i++) { - if ((rect = rects[i]).left != rect.right) break - } else for (var i = rects.length - 1; i >= 0; i--) { - if ((rect = rects[i]).left != rect.right) break - } - return rect - } - - function measureCharInner(cm, prepared, ch, bias) { - var place = nodeAndOffsetInLineMap(prepared.map, ch, bias); - var node = place.node, start = place.start, end = place.end, collapse = place.collapse; - - var rect; - if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates. - for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned - while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) --start; - while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) ++end; - if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) - rect = node.parentNode.getBoundingClientRect(); - else - rect = getUsefulRect(range(node, start, end).getClientRects(), bias) - if (rect.left || rect.right || start == 0) break; - end = start; - start = start - 1; - collapse = "right"; - } - if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect); - } else { // If it is a widget, simply get the box for the whole widget. - if (start > 0) collapse = bias = "right"; - var rects; - if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) - rect = rects[bias == "right" ? rects.length - 1 : 0]; - else - rect = node.getBoundingClientRect(); - } - if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { - var rSpan = node.parentNode.getClientRects()[0]; - if (rSpan) - rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; - else - rect = nullRect; - } - - var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top; - var mid = (rtop + rbot) / 2; - var heights = prepared.view.measure.heights; - for (var i = 0; i < heights.length - 1; i++) - if (mid < heights[i]) break; - var top = i ? heights[i - 1] : 0, bot = heights[i]; - var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, - right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, - top: top, bottom: bot}; - if (!rect.left && !rect.right) result.bogus = true; - if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; } - - return result; - } - - // Work around problem with bounding client rects on ranges being - // returned incorrectly when zoomed on IE10 and below. - function maybeUpdateRectForZooming(measure, rect) { - if (!window.screen || screen.logicalXDPI == null || - screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) - return rect; - var scaleX = screen.logicalXDPI / screen.deviceXDPI; - var scaleY = screen.logicalYDPI / screen.deviceYDPI; - return {left: rect.left * scaleX, right: rect.right * scaleX, - top: rect.top * scaleY, bottom: rect.bottom * scaleY}; - } - - function clearLineMeasurementCacheFor(lineView) { - if (lineView.measure) { - lineView.measure.cache = {}; - lineView.measure.heights = null; - if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++) - lineView.measure.caches[i] = {}; - } - } - - function clearLineMeasurementCache(cm) { - cm.display.externalMeasure = null; - removeChildren(cm.display.lineMeasure); - for (var i = 0; i < cm.display.view.length; i++) - clearLineMeasurementCacheFor(cm.display.view[i]); - } - - function clearCaches(cm) { - clearLineMeasurementCache(cm); - cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; - if (!cm.options.lineWrapping) cm.display.maxLineChanged = true; - cm.display.lineNumChars = null; - } - - function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; } - function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; } - - // Converts a {top, bottom, left, right} box from line-local - // coordinates into another coordinate system. Context may be one of - // "line", "div" (display.lineDiv), "local"/null (editor), "window", - // or "page". - function intoCoordSystem(cm, lineObj, rect, context) { - if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) { - var size = widgetHeight(lineObj.widgets[i]); - rect.top += size; rect.bottom += size; - } - if (context == "line") return rect; - if (!context) context = "local"; - var yOff = heightAtLine(lineObj); - if (context == "local") yOff += paddingTop(cm.display); - else yOff -= cm.display.viewOffset; - if (context == "page" || context == "window") { - var lOff = cm.display.lineSpace.getBoundingClientRect(); - yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); - var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); - rect.left += xOff; rect.right += xOff; - } - rect.top += yOff; rect.bottom += yOff; - return rect; - } - - // Coverts a box from "div" coords to another coordinate system. - // Context may be "window", "page", "div", or "local"/null. - function fromCoordSystem(cm, coords, context) { - if (context == "div") return coords; - var left = coords.left, top = coords.top; - // First move into "page" coordinate system - if (context == "page") { - left -= pageScrollX(); - top -= pageScrollY(); - } else if (context == "local" || !context) { - var localBox = cm.display.sizer.getBoundingClientRect(); - left += localBox.left; - top += localBox.top; - } - - var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); - return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}; - } - - function charCoords(cm, pos, context, lineObj, bias) { - if (!lineObj) lineObj = getLine(cm.doc, pos.line); - return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context); - } - - // Returns a box for a given cursor position, which may have an - // 'other' property containing the position of the secondary cursor - // on a bidi boundary. - function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { - lineObj = lineObj || getLine(cm.doc, pos.line); - if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj); - function get(ch, right) { - var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); - if (right) m.left = m.right; else m.right = m.left; - return intoCoordSystem(cm, lineObj, m, context); - } - function getBidi(ch, partPos) { - var part = order[partPos], right = part.level % 2; - if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) { - part = order[--partPos]; - ch = bidiRight(part) - (part.level % 2 ? 0 : 1); - right = true; - } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) { - part = order[++partPos]; - ch = bidiLeft(part) - part.level % 2; - right = false; - } - if (right && ch == part.to && ch > part.from) return get(ch - 1); - return get(ch, right); - } - var order = getOrder(lineObj), ch = pos.ch; - if (!order) return get(ch); - var partPos = getBidiPartAt(order, ch); - var val = getBidi(ch, partPos); - if (bidiOther != null) val.other = getBidi(ch, bidiOther); - return val; - } - - // Used to cheaply estimate the coordinates for a position. Used for - // intermediate scroll updates. - function estimateCoords(cm, pos) { - var left = 0, pos = clipPos(cm.doc, pos); - if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch; - var lineObj = getLine(cm.doc, pos.line); - var top = heightAtLine(lineObj) + paddingTop(cm.display); - return {left: left, right: left, top: top, bottom: top + lineObj.height}; - } - - // Positions returned by coordsChar contain some extra information. - // xRel is the relative x position of the input coordinates compared - // to the found position (so xRel > 0 means the coordinates are to - // the right of the character position, for example). When outside - // is true, that means the coordinates lie outside the line's - // vertical range. - function PosWithInfo(line, ch, outside, xRel) { - var pos = Pos(line, ch); - pos.xRel = xRel; - if (outside) pos.outside = true; - return pos; - } - - // Compute the character position closest to the given coordinates. - // Input must be lineSpace-local ("div" coordinate system). - function coordsChar(cm, x, y) { - var doc = cm.doc; - y += cm.display.viewOffset; - if (y < 0) return PosWithInfo(doc.first, 0, true, -1); - var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1; - if (lineN > last) - return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1); - if (x < 0) x = 0; - - var lineObj = getLine(doc, lineN); - for (;;) { - var found = coordsCharInner(cm, lineObj, lineN, x, y); - var merged = collapsedSpanAtEnd(lineObj); - var mergedPos = merged && merged.find(0, true); - if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0)) - lineN = lineNo(lineObj = mergedPos.to.line); - else - return found; - } - } - - function coordsCharInner(cm, lineObj, lineNo, x, y) { - var innerOff = y - heightAtLine(lineObj); - var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth; - var preparedMeasure = prepareMeasureForLine(cm, lineObj); - - function getX(ch) { - var sp = cursorCoords(cm, Pos(lineNo, ch), "line", lineObj, preparedMeasure); - wrongLine = true; - if (innerOff > sp.bottom) return sp.left - adjust; - else if (innerOff < sp.top) return sp.left + adjust; - else wrongLine = false; - return sp.left; - } - - var bidi = getOrder(lineObj), dist = lineObj.text.length; - var from = lineLeft(lineObj), to = lineRight(lineObj); - var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine; - - if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1); - // Do a binary search between these bounds. - for (;;) { - if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) { - var ch = x < fromX || x - fromX <= toX - x ? from : to; - var outside = ch == from ? fromOutside : toOutside - var xDiff = x - (ch == from ? fromX : toX); - // This is a kludge to handle the case where the coordinates - // are after a line-wrapped line. We should replace it with a - // more general handling of cursor positions around line - // breaks. (Issue #4078) - if (toOutside && !bidi && !/\s/.test(lineObj.text.charAt(ch)) && xDiff > 0 && - ch < lineObj.text.length && preparedMeasure.view.measure.heights.length > 1) { - var charSize = measureCharPrepared(cm, preparedMeasure, ch, "right"); - if (innerOff <= charSize.bottom && innerOff >= charSize.top && Math.abs(x - charSize.right) < xDiff) { - outside = false - ch++ - xDiff = x - charSize.right - } - } - while (isExtendingChar(lineObj.text.charAt(ch))) ++ch; - var pos = PosWithInfo(lineNo, ch, outside, xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0); - return pos; - } - var step = Math.ceil(dist / 2), middle = from + step; - if (bidi) { - middle = from; - for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1); - } - var middleX = getX(middle); - if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;} - else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;} - } - } - - var measureText; - // Compute the default text height. - function textHeight(display) { - if (display.cachedTextHeight != null) return display.cachedTextHeight; - if (measureText == null) { - measureText = elt("pre"); - // Measure a bunch of lines, for browsers that compute - // fractional heights. - for (var i = 0; i < 49; ++i) { - measureText.appendChild(document.createTextNode("x")); - measureText.appendChild(elt("br")); - } - measureText.appendChild(document.createTextNode("x")); - } - removeChildrenAndAdd(display.measure, measureText); - var height = measureText.offsetHeight / 50; - if (height > 3) display.cachedTextHeight = height; - removeChildren(display.measure); - return height || 1; - } - - // Compute the default character width. - function charWidth(display) { - if (display.cachedCharWidth != null) return display.cachedCharWidth; - var anchor = elt("span", "xxxxxxxxxx"); - var pre = elt("pre", [anchor]); - removeChildrenAndAdd(display.measure, pre); - var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10; - if (width > 2) display.cachedCharWidth = width; - return width || 10; - } - - // OPERATIONS - - // Operations are used to wrap a series of changes to the editor - // state in such a way that each change won't have to update the - // cursor and display (which would be awkward, slow, and - // error-prone). Instead, display updates are batched and then all - // combined and executed at once. - - var operationGroup = null; - - var nextOpId = 0; - // Start a new operation. - function startOperation(cm) { - cm.curOp = { - cm: cm, - viewChanged: false, // Flag that indicates that lines might need to be redrawn - startHeight: cm.doc.height, // Used to detect need to update scrollbar - forceUpdate: false, // Used to force a redraw - updateInput: null, // Whether to reset the input textarea - typing: false, // Whether this reset should be careful to leave existing text (for compositing) - changeObjs: null, // Accumulated changes, for firing change events - cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on - cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already - selectionChanged: false, // Whether the selection needs to be redrawn - updateMaxLine: false, // Set when the widest line needs to be determined anew - scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet - scrollToPos: null, // Used to scroll to a specific position - focus: false, - id: ++nextOpId // Unique ID - }; - if (operationGroup) { - operationGroup.ops.push(cm.curOp); - } else { - cm.curOp.ownsGroup = operationGroup = { - ops: [cm.curOp], - delayedCallbacks: [] - }; - } - } - - function fireCallbacksForOps(group) { - // Calls delayed callbacks and cursorActivity handlers until no - // new ones appear - var callbacks = group.delayedCallbacks, i = 0; - do { - for (; i < callbacks.length; i++) - callbacks[i].call(null); - for (var j = 0; j < group.ops.length; j++) { - var op = group.ops[j]; - if (op.cursorActivityHandlers) - while (op.cursorActivityCalled < op.cursorActivityHandlers.length) - op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); - } - } while (i < callbacks.length); - } - - // Finish an operation, updating the display and signalling delayed events - function endOperation(cm) { - var op = cm.curOp, group = op.ownsGroup; - if (!group) return; - - try { fireCallbacksForOps(group); } - finally { - operationGroup = null; - for (var i = 0; i < group.ops.length; i++) - group.ops[i].cm.curOp = null; - endOperations(group); - } - } - - // The DOM updates done when an operation finishes are batched so - // that the minimum number of relayouts are required. - function endOperations(group) { - var ops = group.ops; - for (var i = 0; i < ops.length; i++) // Read DOM - endOperation_R1(ops[i]); - for (var i = 0; i < ops.length; i++) // Write DOM (maybe) - endOperation_W1(ops[i]); - for (var i = 0; i < ops.length; i++) // Read DOM - endOperation_R2(ops[i]); - for (var i = 0; i < ops.length; i++) // Write DOM (maybe) - endOperation_W2(ops[i]); - for (var i = 0; i < ops.length; i++) // Read DOM - endOperation_finish(ops[i]); - } - - function endOperation_R1(op) { - var cm = op.cm, display = cm.display; - maybeClipScrollbars(cm); - if (op.updateMaxLine) findMaxLine(cm); - - op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || - op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || - op.scrollToPos.to.line >= display.viewTo) || - display.maxLineChanged && cm.options.lineWrapping; - op.update = op.mustUpdate && - new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate); - } - - function endOperation_W1(op) { - op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); - } - - function endOperation_R2(op) { - var cm = op.cm, display = cm.display; - if (op.updatedDisplay) updateHeightsInViewport(cm); - - op.barMeasure = measureForScrollbars(cm); - - // If the max line changed since it was last measured, measure it, - // and ensure the document's width matches it. - // updateDisplay_W2 will use these properties to do the actual resizing - if (display.maxLineChanged && !cm.options.lineWrapping) { - op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; - cm.display.sizerWidth = op.adjustWidthTo; - op.barMeasure.scrollWidth = - Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth); - op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm)); - } - - if (op.updatedDisplay || op.selectionChanged) - op.preparedSelection = display.input.prepareSelection(op.focus); - } - - function endOperation_W2(op) { - var cm = op.cm; - - if (op.adjustWidthTo != null) { - cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; - if (op.maxScrollLeft < cm.doc.scrollLeft) - setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); - cm.display.maxLineChanged = false; - } - - var takeFocus = op.focus && op.focus == activeElt() && (!document.hasFocus || document.hasFocus()) - if (op.preparedSelection) - cm.display.input.showSelection(op.preparedSelection, takeFocus); - if (op.updatedDisplay || op.startHeight != cm.doc.height) - updateScrollbars(cm, op.barMeasure); - if (op.updatedDisplay) - setDocumentHeight(cm, op.barMeasure); - - if (op.selectionChanged) restartBlink(cm); - - if (cm.state.focused && op.updateInput) - cm.display.input.reset(op.typing); - if (takeFocus) ensureFocus(op.cm); - } - - function endOperation_finish(op) { - var cm = op.cm, display = cm.display, doc = cm.doc; - - if (op.updatedDisplay) postUpdateDisplay(cm, op.update); - - // Abort mouse wheel delta measurement, when scrolling explicitly - if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) - display.wheelStartX = display.wheelStartY = null; - - // Propagate the scroll position to the actual DOM scroller - if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) { - doc.scrollTop = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop)); - display.scrollbars.setScrollTop(doc.scrollTop); - display.scroller.scrollTop = doc.scrollTop; - } - if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) { - doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft)); - display.scrollbars.setScrollLeft(doc.scrollLeft); - display.scroller.scrollLeft = doc.scrollLeft; - alignHorizontally(cm); - } - // If we need to scroll a specific position into view, do so. - if (op.scrollToPos) { - var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), - clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); - if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords); - } - - // Fire events for markers that are hidden/unidden by editing or - // undoing - var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; - if (hidden) for (var i = 0; i < hidden.length; ++i) - if (!hidden[i].lines.length) signal(hidden[i], "hide"); - if (unhidden) for (var i = 0; i < unhidden.length; ++i) - if (unhidden[i].lines.length) signal(unhidden[i], "unhide"); - - if (display.wrapper.offsetHeight) - doc.scrollTop = cm.display.scroller.scrollTop; - - // Fire change events, and delayed event handlers - if (op.changeObjs) - signal(cm, "changes", cm, op.changeObjs); - if (op.update) - op.update.finish(); - } - - // Run the given function in an operation - function runInOp(cm, f) { - if (cm.curOp) return f(); - startOperation(cm); - try { return f(); } - finally { endOperation(cm); } - } - // Wraps a function in an operation. Returns the wrapped function. - function operation(cm, f) { - return function() { - if (cm.curOp) return f.apply(cm, arguments); - startOperation(cm); - try { return f.apply(cm, arguments); } - finally { endOperation(cm); } - }; - } - // Used to add methods to editor and doc instances, wrapping them in - // operations. - function methodOp(f) { - return function() { - if (this.curOp) return f.apply(this, arguments); - startOperation(this); - try { return f.apply(this, arguments); } - finally { endOperation(this); } - }; - } - function docMethodOp(f) { - return function() { - var cm = this.cm; - if (!cm || cm.curOp) return f.apply(this, arguments); - startOperation(cm); - try { return f.apply(this, arguments); } - finally { endOperation(cm); } - }; - } - - // VIEW TRACKING - - // These objects are used to represent the visible (currently drawn) - // part of the document. A LineView may correspond to multiple - // logical lines, if those are connected by collapsed ranges. - function LineView(doc, line, lineN) { - // The starting line - this.line = line; - // Continuing lines, if any - this.rest = visualLineContinued(line); - // Number of logical lines in this visual line - this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; - this.node = this.text = null; - this.hidden = lineIsHidden(doc, line); - } - - // Create a range of LineView objects for the given lines. - function buildViewArray(cm, from, to) { - var array = [], nextPos; - for (var pos = from; pos < to; pos = nextPos) { - var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); - nextPos = pos + view.size; - array.push(view); - } - return array; - } - - // Updates the display.view data structure for a given change to the - // document. From and to are in pre-change coordinates. Lendiff is - // the amount of lines added or subtracted by the change. This is - // used for changes that span multiple lines, or change the way - // lines are divided into visual lines. regLineChange (below) - // registers single-line changes. - function regChange(cm, from, to, lendiff) { - if (from == null) from = cm.doc.first; - if (to == null) to = cm.doc.first + cm.doc.size; - if (!lendiff) lendiff = 0; - - var display = cm.display; - if (lendiff && to < display.viewTo && - (display.updateLineNumbers == null || display.updateLineNumbers > from)) - display.updateLineNumbers = from; - - cm.curOp.viewChanged = true; - - if (from >= display.viewTo) { // Change after - if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) - resetView(cm); - } else if (to <= display.viewFrom) { // Change before - if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { - resetView(cm); - } else { - display.viewFrom += lendiff; - display.viewTo += lendiff; - } - } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap - resetView(cm); - } else if (from <= display.viewFrom) { // Top overlap - var cut = viewCuttingPoint(cm, to, to + lendiff, 1); - if (cut) { - display.view = display.view.slice(cut.index); - display.viewFrom = cut.lineN; - display.viewTo += lendiff; - } else { - resetView(cm); - } - } else if (to >= display.viewTo) { // Bottom overlap - var cut = viewCuttingPoint(cm, from, from, -1); - if (cut) { - display.view = display.view.slice(0, cut.index); - display.viewTo = cut.lineN; - } else { - resetView(cm); - } - } else { // Gap in the middle - var cutTop = viewCuttingPoint(cm, from, from, -1); - var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); - if (cutTop && cutBot) { - display.view = display.view.slice(0, cutTop.index) - .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)) - .concat(display.view.slice(cutBot.index)); - display.viewTo += lendiff; - } else { - resetView(cm); - } - } - - var ext = display.externalMeasured; - if (ext) { - if (to < ext.lineN) - ext.lineN += lendiff; - else if (from < ext.lineN + ext.size) - display.externalMeasured = null; - } - } - - // Register a change to a single line. Type must be one of "text", - // "gutter", "class", "widget" - function regLineChange(cm, line, type) { - cm.curOp.viewChanged = true; - var display = cm.display, ext = cm.display.externalMeasured; - if (ext && line >= ext.lineN && line < ext.lineN + ext.size) - display.externalMeasured = null; - - if (line < display.viewFrom || line >= display.viewTo) return; - var lineView = display.view[findViewIndex(cm, line)]; - if (lineView.node == null) return; - var arr = lineView.changes || (lineView.changes = []); - if (indexOf(arr, type) == -1) arr.push(type); - } - - // Clear the view. - function resetView(cm) { - cm.display.viewFrom = cm.display.viewTo = cm.doc.first; - cm.display.view = []; - cm.display.viewOffset = 0; - } - - // Find the view element corresponding to a given line. Return null - // when the line isn't visible. - function findViewIndex(cm, n) { - if (n >= cm.display.viewTo) return null; - n -= cm.display.viewFrom; - if (n < 0) return null; - var view = cm.display.view; - for (var i = 0; i < view.length; i++) { - n -= view[i].size; - if (n < 0) return i; - } - } - - function viewCuttingPoint(cm, oldN, newN, dir) { - var index = findViewIndex(cm, oldN), diff, view = cm.display.view; - if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) - return {index: index, lineN: newN}; - for (var i = 0, n = cm.display.viewFrom; i < index; i++) - n += view[i].size; - if (n != oldN) { - if (dir > 0) { - if (index == view.length - 1) return null; - diff = (n + view[index].size) - oldN; - index++; - } else { - diff = n - oldN; - } - oldN += diff; newN += diff; - } - while (visualLineNo(cm.doc, newN) != newN) { - if (index == (dir < 0 ? 0 : view.length - 1)) return null; - newN += dir * view[index - (dir < 0 ? 1 : 0)].size; - index += dir; - } - return {index: index, lineN: newN}; - } - - // Force the view to cover a given range, adding empty view element - // or clipping off existing ones as needed. - function adjustView(cm, from, to) { - var display = cm.display, view = display.view; - if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { - display.view = buildViewArray(cm, from, to); - display.viewFrom = from; - } else { - if (display.viewFrom > from) - display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); - else if (display.viewFrom < from) - display.view = display.view.slice(findViewIndex(cm, from)); - display.viewFrom = from; - if (display.viewTo < to) - display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); - else if (display.viewTo > to) - display.view = display.view.slice(0, findViewIndex(cm, to)); - } - display.viewTo = to; - } - - // Count the number of lines in the view whose DOM representation is - // out of date (or nonexistent). - function countDirtyView(cm) { - var view = cm.display.view, dirty = 0; - for (var i = 0; i < view.length; i++) { - var lineView = view[i]; - if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty; - } - return dirty; - } - - // EVENT HANDLERS - - // Attach the necessary event handlers when initializing the editor - function registerEventHandlers(cm) { - var d = cm.display; - on(d.scroller, "mousedown", operation(cm, onMouseDown)); - // Older IE's will not fire a second mousedown for a double click - if (ie && ie_version < 11) - on(d.scroller, "dblclick", operation(cm, function(e) { - if (signalDOMEvent(cm, e)) return; - var pos = posFromMouse(cm, e); - if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return; - e_preventDefault(e); - var word = cm.findWordAt(pos); - extendSelection(cm.doc, word.anchor, word.head); - })); - else - on(d.scroller, "dblclick", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); }); - // Some browsers fire contextmenu *after* opening the menu, at - // which point we can't mess with it anymore. Context menu is - // handled in onMouseDown for these browsers. - if (!captureRightClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);}); - - // Used to suppress mouse event handling when a touch happens - var touchFinished, prevTouch = {end: 0}; - function finishTouch() { - if (d.activeTouch) { - touchFinished = setTimeout(function() {d.activeTouch = null;}, 1000); - prevTouch = d.activeTouch; - prevTouch.end = +new Date; - } - }; - function isMouseLikeTouchEvent(e) { - if (e.touches.length != 1) return false; - var touch = e.touches[0]; - return touch.radiusX <= 1 && touch.radiusY <= 1; - } - function farAway(touch, other) { - if (other.left == null) return true; - var dx = other.left - touch.left, dy = other.top - touch.top; - return dx * dx + dy * dy > 20 * 20; - } - on(d.scroller, "touchstart", function(e) { - if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e)) { - clearTimeout(touchFinished); - var now = +new Date; - d.activeTouch = {start: now, moved: false, - prev: now - prevTouch.end <= 300 ? prevTouch : null}; - if (e.touches.length == 1) { - d.activeTouch.left = e.touches[0].pageX; - d.activeTouch.top = e.touches[0].pageY; - } - } - }); - on(d.scroller, "touchmove", function() { - if (d.activeTouch) d.activeTouch.moved = true; - }); - on(d.scroller, "touchend", function(e) { - var touch = d.activeTouch; - if (touch && !eventInWidget(d, e) && touch.left != null && - !touch.moved && new Date - touch.start < 300) { - var pos = cm.coordsChar(d.activeTouch, "page"), range; - if (!touch.prev || farAway(touch, touch.prev)) // Single tap - range = new Range(pos, pos); - else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap - range = cm.findWordAt(pos); - else // Triple tap - range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); - cm.setSelection(range.anchor, range.head); - cm.focus(); - e_preventDefault(e); - } - finishTouch(); - }); - on(d.scroller, "touchcancel", finishTouch); - - // Sync scrolling between fake scrollbars and real scrollable - // area, ensure viewport is updated when scrolling. - on(d.scroller, "scroll", function() { - if (d.scroller.clientHeight) { - setScrollTop(cm, d.scroller.scrollTop); - setScrollLeft(cm, d.scroller.scrollLeft, true); - signal(cm, "scroll", cm); - } - }); - - // Listen to wheel events in order to try and update the viewport on time. - on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);}); - on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);}); - - // Prevent wrapper from ever scrolling - on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); - - d.dragFunctions = { - enter: function(e) {if (!signalDOMEvent(cm, e)) e_stop(e);}, - over: function(e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }}, - start: function(e){onDragStart(cm, e);}, - drop: operation(cm, onDrop), - leave: function(e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }} - }; - - var inp = d.input.getField(); - on(inp, "keyup", function(e) { onKeyUp.call(cm, e); }); - on(inp, "keydown", operation(cm, onKeyDown)); - on(inp, "keypress", operation(cm, onKeyPress)); - on(inp, "focus", function (e) { onFocus(cm, e); }); - on(inp, "blur", function (e) { onBlur(cm, e); }); - } - - function dragDropChanged(cm, value, old) { - var wasOn = old && old != CodeMirror.Init; - if (!value != !wasOn) { - var funcs = cm.display.dragFunctions; - var toggle = value ? on : off; - toggle(cm.display.scroller, "dragstart", funcs.start); - toggle(cm.display.scroller, "dragenter", funcs.enter); - toggle(cm.display.scroller, "dragover", funcs.over); - toggle(cm.display.scroller, "dragleave", funcs.leave); - toggle(cm.display.scroller, "drop", funcs.drop); - } - } - - // Called when the window resizes - function onResize(cm) { - var d = cm.display; - if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth) - return; - // Might be a text scaling operation, clear size caches. - d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; - d.scrollbarsClipped = false; - cm.setSize(); - } - - // MOUSE EVENTS - - // Return true when the given mouse event happened in a widget - function eventInWidget(display, e) { - for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { - if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") || - (n.parentNode == display.sizer && n != display.mover)) - return true; - } - } - - // Given a mouse event, find the corresponding position. If liberal - // is false, it checks whether a gutter or scrollbar was clicked, - // and returns null if it was. forRect is used by rectangular - // selections, and tries to estimate a character position even for - // coordinates beyond the right of the text. - function posFromMouse(cm, e, liberal, forRect) { - var display = cm.display; - if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") return null; - - var x, y, space = display.lineSpace.getBoundingClientRect(); - // Fails unpredictably on IE[67] when mouse is dragged around quickly. - try { x = e.clientX - space.left; y = e.clientY - space.top; } - catch (e) { return null; } - var coords = coordsChar(cm, x, y), line; - if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { - var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; - coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); - } - return coords; - } - - // A mouse down can be a single click, double click, triple click, - // start of selection drag, start of text drag, new cursor - // (ctrl-click), rectangle drag (alt-drag), or xwin - // middle-click-paste. Or it might be a click on something we should - // not interfere with, such as a scrollbar or widget. - function onMouseDown(e) { - var cm = this, display = cm.display; - if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) return; - display.shift = e.shiftKey; - - if (eventInWidget(display, e)) { - if (!webkit) { - // Briefly turn off draggability, to allow widgets to do - // normal dragging things. - display.scroller.draggable = false; - setTimeout(function(){display.scroller.draggable = true;}, 100); - } - return; - } - if (clickInGutter(cm, e)) return; - var start = posFromMouse(cm, e); - window.focus(); - - switch (e_button(e)) { - case 1: - // #3261: make sure, that we're not starting a second selection - if (cm.state.selectingText) - cm.state.selectingText(e); - else if (start) - leftButtonDown(cm, e, start); - else if (e_target(e) == display.scroller) - e_preventDefault(e); - break; - case 2: - if (webkit) cm.state.lastMiddleDown = +new Date; - if (start) extendSelection(cm.doc, start); - setTimeout(function() {display.input.focus();}, 20); - e_preventDefault(e); - break; - case 3: - if (captureRightClick) onContextMenu(cm, e); - else delayBlurEvent(cm); - break; - } - } - - var lastClick, lastDoubleClick; - function leftButtonDown(cm, e, start) { - if (ie) setTimeout(bind(ensureFocus, cm), 0); - else cm.curOp.focus = activeElt(); - - var now = +new Date, type; - if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) { - type = "triple"; - } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) { - type = "double"; - lastDoubleClick = {time: now, pos: start}; - } else { - type = "single"; - lastClick = {time: now, pos: start}; - } - - var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey, contained; - if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() && - type == "single" && (contained = sel.contains(start)) > -1 && - (cmp((contained = sel.ranges[contained]).from(), start) < 0 || start.xRel > 0) && - (cmp(contained.to(), start) > 0 || start.xRel < 0)) - leftButtonStartDrag(cm, e, start, modifier); - else - leftButtonSelect(cm, e, start, type, modifier); - } - - // Start a text drag. When it ends, see if any dragging actually - // happen, and treat as a click if it didn't. - function leftButtonStartDrag(cm, e, start, modifier) { - var display = cm.display, startTime = +new Date; - var dragEnd = operation(cm, function(e2) { - if (webkit) display.scroller.draggable = false; - cm.state.draggingText = false; - off(document, "mouseup", dragEnd); - off(display.scroller, "drop", dragEnd); - if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { - e_preventDefault(e2); - if (!modifier && +new Date - 200 < startTime) - extendSelection(cm.doc, start); - // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081) - if (webkit || ie && ie_version == 9) - setTimeout(function() {document.body.focus(); display.input.focus();}, 20); - else - display.input.focus(); - } - }); - // Let the drag handler handle this. - if (webkit) display.scroller.draggable = true; - cm.state.draggingText = dragEnd; - dragEnd.copy = mac ? e.altKey : e.ctrlKey - // IE's approach to draggable - if (display.scroller.dragDrop) display.scroller.dragDrop(); - on(document, "mouseup", dragEnd); - on(display.scroller, "drop", dragEnd); - } - - // Normal selection, as opposed to text dragging. - function leftButtonSelect(cm, e, start, type, addNew) { - var display = cm.display, doc = cm.doc; - e_preventDefault(e); - - var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges; - if (addNew && !e.shiftKey) { - ourIndex = doc.sel.contains(start); - if (ourIndex > -1) - ourRange = ranges[ourIndex]; - else - ourRange = new Range(start, start); - } else { - ourRange = doc.sel.primary(); - ourIndex = doc.sel.primIndex; - } - - if (chromeOS ? e.shiftKey && e.metaKey : e.altKey) { - type = "rect"; - if (!addNew) ourRange = new Range(start, start); - start = posFromMouse(cm, e, true, true); - ourIndex = -1; - } else if (type == "double") { - var word = cm.findWordAt(start); - if (cm.display.shift || doc.extend) - ourRange = extendRange(doc, ourRange, word.anchor, word.head); - else - ourRange = word; - } else if (type == "triple") { - var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0))); - if (cm.display.shift || doc.extend) - ourRange = extendRange(doc, ourRange, line.anchor, line.head); - else - ourRange = line; - } else { - ourRange = extendRange(doc, ourRange, start); - } - - if (!addNew) { - ourIndex = 0; - setSelection(doc, new Selection([ourRange], 0), sel_mouse); - startSel = doc.sel; - } else if (ourIndex == -1) { - ourIndex = ranges.length; - setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex), - {scroll: false, origin: "*mouse"}); - } else if (ranges.length > 1 && ranges[ourIndex].empty() && type == "single" && !e.shiftKey) { - setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), - {scroll: false, origin: "*mouse"}); - startSel = doc.sel; - } else { - replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); - } - - var lastPos = start; - function extendTo(pos) { - if (cmp(lastPos, pos) == 0) return; - lastPos = pos; - - if (type == "rect") { - var ranges = [], tabSize = cm.options.tabSize; - var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); - var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); - var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); - for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); - line <= end; line++) { - var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); - if (left == right) - ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); - else if (text.length > leftPos) - ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); - } - if (!ranges.length) ranges.push(new Range(start, start)); - setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), - {origin: "*mouse", scroll: false}); - cm.scrollIntoView(pos); - } else { - var oldRange = ourRange; - var anchor = oldRange.anchor, head = pos; - if (type != "single") { - if (type == "double") - var range = cm.findWordAt(pos); - else - var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0))); - if (cmp(range.anchor, anchor) > 0) { - head = range.head; - anchor = minPos(oldRange.from(), range.anchor); - } else { - head = range.anchor; - anchor = maxPos(oldRange.to(), range.head); - } - } - var ranges = startSel.ranges.slice(0); - ranges[ourIndex] = new Range(clipPos(doc, anchor), head); - setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse); - } - } - - var editorSize = display.wrapper.getBoundingClientRect(); - // Used to ensure timeout re-tries don't fire when another extend - // happened in the meantime (clearTimeout isn't reliable -- at - // least on Chrome, the timeouts still happen even when cleared, - // if the clear happens after their scheduled firing time). - var counter = 0; - - function extend(e) { - var curCount = ++counter; - var cur = posFromMouse(cm, e, true, type == "rect"); - if (!cur) return; - if (cmp(cur, lastPos) != 0) { - cm.curOp.focus = activeElt(); - extendTo(cur); - var visible = visibleLines(display, doc); - if (cur.line >= visible.to || cur.line < visible.from) - setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150); - } else { - var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; - if (outside) setTimeout(operation(cm, function() { - if (counter != curCount) return; - display.scroller.scrollTop += outside; - extend(e); - }), 50); - } - } - - function done(e) { - cm.state.selectingText = false; - counter = Infinity; - e_preventDefault(e); - display.input.focus(); - off(document, "mousemove", move); - off(document, "mouseup", up); - doc.history.lastSelOrigin = null; - } - - var move = operation(cm, function(e) { - if (!e_button(e)) done(e); - else extend(e); - }); - var up = operation(cm, done); - cm.state.selectingText = up; - on(document, "mousemove", move); - on(document, "mouseup", up); - } - - // Determines whether an event happened in the gutter, and fires the - // handlers for the corresponding event. - function gutterEvent(cm, e, type, prevent) { - try { var mX = e.clientX, mY = e.clientY; } - catch(e) { return false; } - if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false; - if (prevent) e_preventDefault(e); - - var display = cm.display; - var lineBox = display.lineDiv.getBoundingClientRect(); - - if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e); - mY -= lineBox.top - display.viewOffset; - - for (var i = 0; i < cm.options.gutters.length; ++i) { - var g = display.gutters.childNodes[i]; - if (g && g.getBoundingClientRect().right >= mX) { - var line = lineAtHeight(cm.doc, mY); - var gutter = cm.options.gutters[i]; - signal(cm, type, cm, line, gutter, e); - return e_defaultPrevented(e); - } - } - } - - function clickInGutter(cm, e) { - return gutterEvent(cm, e, "gutterClick", true); - } - - // Kludge to work around strange IE behavior where it'll sometimes - // re-fire a series of drag-related events right after the drop (#1551) - var lastDrop = 0; - - function onDrop(e) { - var cm = this; - clearDragCursor(cm); - if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) - return; - e_preventDefault(e); - if (ie) lastDrop = +new Date; - var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; - if (!pos || cm.isReadOnly()) return; - // Might be a file drop, in which case we simply extract the text - // and insert it. - if (files && files.length && window.FileReader && window.File) { - var n = files.length, text = Array(n), read = 0; - var loadFile = function(file, i) { - if (cm.options.allowDropFileTypes && - indexOf(cm.options.allowDropFileTypes, file.type) == -1) - return; - - var reader = new FileReader; - reader.onload = operation(cm, function() { - var content = reader.result; - if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) content = ""; - text[i] = content; - if (++read == n) { - pos = clipPos(cm.doc, pos); - var change = {from: pos, to: pos, - text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())), - origin: "paste"}; - makeChange(cm.doc, change); - setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change))); - } - }); - reader.readAsText(file); - }; - for (var i = 0; i < n; ++i) loadFile(files[i], i); - } else { // Normal drop - // Don't do a replace if the drop happened inside of the selected text. - if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { - cm.state.draggingText(e); - // Ensure the editor is re-focused - setTimeout(function() {cm.display.input.focus();}, 20); - return; - } - try { - var text = e.dataTransfer.getData("Text"); - if (text) { - if (cm.state.draggingText && !cm.state.draggingText.copy) - var selected = cm.listSelections(); - setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); - if (selected) for (var i = 0; i < selected.length; ++i) - replaceRange(cm.doc, "", selected[i].anchor, selected[i].head, "drag"); - cm.replaceSelection(text, "around", "paste"); - cm.display.input.focus(); - } - } - catch(e){} - } - } - - function onDragStart(cm, e) { - if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; } - if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return; - - e.dataTransfer.setData("Text", cm.getSelection()); - e.dataTransfer.effectAllowed = "copyMove" - - // Use dummy image instead of default browsers image. - // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. - if (e.dataTransfer.setDragImage && !safari) { - var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); - img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; - if (presto) { - img.width = img.height = 1; - cm.display.wrapper.appendChild(img); - // Force a relayout, or Opera won't use our image for some obscure reason - img._top = img.offsetTop; - } - e.dataTransfer.setDragImage(img, 0, 0); - if (presto) img.parentNode.removeChild(img); - } - } - - function onDragOver(cm, e) { - var pos = posFromMouse(cm, e); - if (!pos) return; - var frag = document.createDocumentFragment(); - drawSelectionCursor(cm, pos, frag); - if (!cm.display.dragCursor) { - cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"); - cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv); - } - removeChildrenAndAdd(cm.display.dragCursor, frag); - } - - function clearDragCursor(cm) { - if (cm.display.dragCursor) { - cm.display.lineSpace.removeChild(cm.display.dragCursor); - cm.display.dragCursor = null; - } - } - - // SCROLL EVENTS - - // Sync the scrollable area and scrollbars, ensure the viewport - // covers the visible area. - function setScrollTop(cm, val) { - if (Math.abs(cm.doc.scrollTop - val) < 2) return; - cm.doc.scrollTop = val; - if (!gecko) updateDisplaySimple(cm, {top: val}); - if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val; - cm.display.scrollbars.setScrollTop(val); - if (gecko) updateDisplaySimple(cm); - startWorker(cm, 100); - } - // Sync scroller and scrollbar, ensure the gutter elements are - // aligned. - function setScrollLeft(cm, val, isScroller) { - if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return; - val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); - cm.doc.scrollLeft = val; - alignHorizontally(cm); - if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val; - cm.display.scrollbars.setScrollLeft(val); - } - - // Since the delta values reported on mouse wheel events are - // unstandardized between browsers and even browser versions, and - // generally horribly unpredictable, this code starts by measuring - // the scroll effect that the first few mouse wheel events have, - // and, from that, detects the way it can convert deltas to pixel - // offsets afterwards. - // - // The reason we want to know the amount a wheel event will scroll - // is that it gives us a chance to update the display before the - // actual scrolling happens, reducing flickering. - - var wheelSamples = 0, wheelPixelsPerUnit = null; - // Fill in a browser-detected starting value on browsers where we - // know one. These don't have to be accurate -- the result of them - // being wrong would just be a slight flicker on the first wheel - // scroll (if it is large enough). - if (ie) wheelPixelsPerUnit = -.53; - else if (gecko) wheelPixelsPerUnit = 15; - else if (chrome) wheelPixelsPerUnit = -.7; - else if (safari) wheelPixelsPerUnit = -1/3; - - var wheelEventDelta = function(e) { - var dx = e.wheelDeltaX, dy = e.wheelDeltaY; - if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail; - if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail; - else if (dy == null) dy = e.wheelDelta; - return {x: dx, y: dy}; - }; - CodeMirror.wheelEventPixels = function(e) { - var delta = wheelEventDelta(e); - delta.x *= wheelPixelsPerUnit; - delta.y *= wheelPixelsPerUnit; - return delta; - }; - - function onScrollWheel(cm, e) { - var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y; - - var display = cm.display, scroll = display.scroller; - // Quit if there's nothing to scroll here - var canScrollX = scroll.scrollWidth > scroll.clientWidth; - var canScrollY = scroll.scrollHeight > scroll.clientHeight; - if (!(dx && canScrollX || dy && canScrollY)) return; - - // Webkit browsers on OS X abort momentum scrolls when the target - // of the scroll event is removed from the scrollable element. - // This hack (see related code in patchDisplay) makes sure the - // element is kept around. - if (dy && mac && webkit) { - outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { - for (var i = 0; i < view.length; i++) { - if (view[i].node == cur) { - cm.display.currentWheelTarget = cur; - break outer; - } - } - } - } - - // On some browsers, horizontal scrolling will cause redraws to - // happen before the gutter has been realigned, causing it to - // wriggle around in a most unseemly way. When we have an - // estimated pixels/delta value, we just handle horizontal - // scrolling entirely here. It'll be slightly off from native, but - // better than glitching out. - if (dx && !gecko && !presto && wheelPixelsPerUnit != null) { - if (dy && canScrollY) - setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight))); - setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth))); - // Only prevent default scrolling if vertical scrolling is - // actually possible. Otherwise, it causes vertical scroll - // jitter on OSX trackpads when deltaX is small and deltaY - // is large (issue #3579) - if (!dy || (dy && canScrollY)) - e_preventDefault(e); - display.wheelStartX = null; // Abort measurement, if in progress - return; - } - - // 'Project' the visible viewport to cover the area that is being - // scrolled into view (if we know enough to estimate it). - if (dy && wheelPixelsPerUnit != null) { - var pixels = dy * wheelPixelsPerUnit; - var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; - if (pixels < 0) top = Math.max(0, top + pixels - 50); - else bot = Math.min(cm.doc.height, bot + pixels + 50); - updateDisplaySimple(cm, {top: top, bottom: bot}); - } - - if (wheelSamples < 20) { - if (display.wheelStartX == null) { - display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; - display.wheelDX = dx; display.wheelDY = dy; - setTimeout(function() { - if (display.wheelStartX == null) return; - var movedX = scroll.scrollLeft - display.wheelStartX; - var movedY = scroll.scrollTop - display.wheelStartY; - var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || - (movedX && display.wheelDX && movedX / display.wheelDX); - display.wheelStartX = display.wheelStartY = null; - if (!sample) return; - wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); - ++wheelSamples; - }, 200); - } else { - display.wheelDX += dx; display.wheelDY += dy; - } - } - } - - // KEY EVENTS - - // Run a handler that was bound to a key. - function doHandleBinding(cm, bound, dropShift) { - if (typeof bound == "string") { - bound = commands[bound]; - if (!bound) return false; - } - // Ensure previous input has been read, so that the handler sees a - // consistent view of the document - cm.display.input.ensurePolled(); - var prevShift = cm.display.shift, done = false; - try { - if (cm.isReadOnly()) cm.state.suppressEdits = true; - if (dropShift) cm.display.shift = false; - done = bound(cm) != Pass; - } finally { - cm.display.shift = prevShift; - cm.state.suppressEdits = false; - } - return done; - } - - function lookupKeyForEditor(cm, name, handle) { - for (var i = 0; i < cm.state.keyMaps.length; i++) { - var result = lookupKey(name, cm.state.keyMaps[i], handle, cm); - if (result) return result; - } - return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm)) - || lookupKey(name, cm.options.keyMap, handle, cm); - } - - var stopSeq = new Delayed; - function dispatchKey(cm, name, e, handle) { - var seq = cm.state.keySeq; - if (seq) { - if (isModifierKey(name)) return "handled"; - stopSeq.set(50, function() { - if (cm.state.keySeq == seq) { - cm.state.keySeq = null; - cm.display.input.reset(); - } - }); - name = seq + " " + name; - } - var result = lookupKeyForEditor(cm, name, handle); - - if (result == "multi") - cm.state.keySeq = name; - if (result == "handled") - signalLater(cm, "keyHandled", cm, name, e); - - if (result == "handled" || result == "multi") { - e_preventDefault(e); - restartBlink(cm); - } - - if (seq && !result && /\'$/.test(name)) { - e_preventDefault(e); - return true; - } - return !!result; - } - - // Handle a key from the keydown event. - function handleKeyBinding(cm, e) { - var name = keyName(e, true); - if (!name) return false; - - if (e.shiftKey && !cm.state.keySeq) { - // First try to resolve full name (including 'Shift-'). Failing - // that, see if there is a cursor-motion command (starting with - // 'go') bound to the keyname without 'Shift-'. - return dispatchKey(cm, "Shift-" + name, e, function(b) {return doHandleBinding(cm, b, true);}) - || dispatchKey(cm, name, e, function(b) { - if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) - return doHandleBinding(cm, b); - }); - } else { - return dispatchKey(cm, name, e, function(b) { return doHandleBinding(cm, b); }); - } - } - - // Handle a key from the keypress event - function handleCharBinding(cm, e, ch) { - return dispatchKey(cm, "'" + ch + "'", e, - function(b) { return doHandleBinding(cm, b, true); }); - } - - var lastStoppedKey = null; - function onKeyDown(e) { - var cm = this; - cm.curOp.focus = activeElt(); - if (signalDOMEvent(cm, e)) return; - // IE does strange things with escape. - if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false; - var code = e.keyCode; - cm.display.shift = code == 16 || e.shiftKey; - var handled = handleKeyBinding(cm, e); - if (presto) { - lastStoppedKey = handled ? code : null; - // Opera has no cut event... we try to at least catch the key combo - if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) - cm.replaceSelection("", null, "cut"); - } - - // Turn mouse into crosshair when Alt is held on Mac. - if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) - showCrossHair(cm); - } - - function showCrossHair(cm) { - var lineDiv = cm.display.lineDiv; - addClass(lineDiv, "CodeMirror-crosshair"); - - function up(e) { - if (e.keyCode == 18 || !e.altKey) { - rmClass(lineDiv, "CodeMirror-crosshair"); - off(document, "keyup", up); - off(document, "mouseover", up); - } - } - on(document, "keyup", up); - on(document, "mouseover", up); - } - - function onKeyUp(e) { - if (e.keyCode == 16) this.doc.sel.shift = false; - signalDOMEvent(this, e); - } - - function onKeyPress(e) { - var cm = this; - if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return; - var keyCode = e.keyCode, charCode = e.charCode; - if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} - if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) return; - var ch = String.fromCharCode(charCode == null ? keyCode : charCode); - if (handleCharBinding(cm, e, ch)) return; - cm.display.input.onKeyPress(e); - } - - // FOCUS/BLUR EVENTS - - function delayBlurEvent(cm) { - cm.state.delayingBlurEvent = true; - setTimeout(function() { - if (cm.state.delayingBlurEvent) { - cm.state.delayingBlurEvent = false; - onBlur(cm); - } - }, 100); - } - - function onFocus(cm, e) { - if (cm.state.delayingBlurEvent) cm.state.delayingBlurEvent = false; - - if (cm.options.readOnly == "nocursor") return; - if (!cm.state.focused) { - signal(cm, "focus", cm, e); - cm.state.focused = true; - addClass(cm.display.wrapper, "CodeMirror-focused"); - // This test prevents this from firing when a context - // menu is closed (since the input reset would kill the - // select-all detection hack) - if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { - cm.display.input.reset(); - if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730 - } - cm.display.input.receivedFocus(); - } - restartBlink(cm); - } - function onBlur(cm, e) { - if (cm.state.delayingBlurEvent) return; - - if (cm.state.focused) { - signal(cm, "blur", cm, e); - cm.state.focused = false; - rmClass(cm.display.wrapper, "CodeMirror-focused"); - } - clearInterval(cm.display.blinker); - setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150); - } - - // CONTEXT MENU HANDLING - - // To make the context menu work, we need to briefly unhide the - // textarea (making it as unobtrusive as possible) to let the - // right-click take effect on it. - function onContextMenu(cm, e) { - if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) return; - if (signalDOMEvent(cm, e, "contextmenu")) return; - cm.display.input.onContextMenu(e); - } - - function contextMenuInGutter(cm, e) { - if (!hasHandler(cm, "gutterContextMenu")) return false; - return gutterEvent(cm, e, "gutterContextMenu", false); - } - - // UPDATING - - // Compute the position of the end of a change (its 'to' property - // refers to the pre-change end). - var changeEnd = CodeMirror.changeEnd = function(change) { - if (!change.text) return change.to; - return Pos(change.from.line + change.text.length - 1, - lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)); - }; - - // Adjust a position to refer to the post-change position of the - // same text, or the end of the change if the change covers it. - function adjustForChange(pos, change) { - if (cmp(pos, change.from) < 0) return pos; - if (cmp(pos, change.to) <= 0) return changeEnd(change); - - var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; - if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch; - return Pos(line, ch); - } - - function computeSelAfterChange(doc, change) { - var out = []; - for (var i = 0; i < doc.sel.ranges.length; i++) { - var range = doc.sel.ranges[i]; - out.push(new Range(adjustForChange(range.anchor, change), - adjustForChange(range.head, change))); - } - return normalizeSelection(out, doc.sel.primIndex); - } - - function offsetPos(pos, old, nw) { - if (pos.line == old.line) - return Pos(nw.line, pos.ch - old.ch + nw.ch); - else - return Pos(nw.line + (pos.line - old.line), pos.ch); - } - - // Used by replaceSelections to allow moving the selection to the - // start or around the replaced test. Hint may be "start" or "around". - function computeReplacedSel(doc, changes, hint) { - var out = []; - var oldPrev = Pos(doc.first, 0), newPrev = oldPrev; - for (var i = 0; i < changes.length; i++) { - var change = changes[i]; - var from = offsetPos(change.from, oldPrev, newPrev); - var to = offsetPos(changeEnd(change), oldPrev, newPrev); - oldPrev = change.to; - newPrev = to; - if (hint == "around") { - var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0; - out[i] = new Range(inv ? to : from, inv ? from : to); - } else { - out[i] = new Range(from, from); - } - } - return new Selection(out, doc.sel.primIndex); - } - - // Allow "beforeChange" event handlers to influence a change - function filterChange(doc, change, update) { - var obj = { - canceled: false, - from: change.from, - to: change.to, - text: change.text, - origin: change.origin, - cancel: function() { this.canceled = true; } - }; - if (update) obj.update = function(from, to, text, origin) { - if (from) this.from = clipPos(doc, from); - if (to) this.to = clipPos(doc, to); - if (text) this.text = text; - if (origin !== undefined) this.origin = origin; - }; - signal(doc, "beforeChange", doc, obj); - if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj); - - if (obj.canceled) return null; - return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}; - } - - // Apply a change to a document, and add it to the document's - // history, and propagating it to all linked documents. - function makeChange(doc, change, ignoreReadOnly) { - if (doc.cm) { - if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly); - if (doc.cm.state.suppressEdits) return; - } - - if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { - change = filterChange(doc, change, true); - if (!change) return; - } - - // Possibly split or suppress the update based on the presence - // of read-only spans in its range. - var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); - if (split) { - for (var i = split.length - 1; i >= 0; --i) - makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text}); - } else { - makeChangeInner(doc, change); - } - } - - function makeChangeInner(doc, change) { - if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) return; - var selAfter = computeSelAfterChange(doc, change); - addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); - - makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); - var rebased = []; - - linkedDocs(doc, function(doc, sharedHist) { - if (!sharedHist && indexOf(rebased, doc.history) == -1) { - rebaseHist(doc.history, change); - rebased.push(doc.history); - } - makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); - }); - } - - // Revert a change stored in a document's history. - function makeChangeFromHistory(doc, type, allowSelectionOnly) { - if (doc.cm && doc.cm.state.suppressEdits && !allowSelectionOnly) return; - - var hist = doc.history, event, selAfter = doc.sel; - var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done; - - // Verify that there is a useable event (so that ctrl-z won't - // needlessly clear selection events) - for (var i = 0; i < source.length; i++) { - event = source[i]; - if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) - break; - } - if (i == source.length) return; - hist.lastOrigin = hist.lastSelOrigin = null; - - for (;;) { - event = source.pop(); - if (event.ranges) { - pushSelectionToHistory(event, dest); - if (allowSelectionOnly && !event.equals(doc.sel)) { - setSelection(doc, event, {clearRedo: false}); - return; - } - selAfter = event; - } - else break; - } - - // Build up a reverse change object to add to the opposite history - // stack (redo when undoing, and vice versa). - var antiChanges = []; - pushSelectionToHistory(selAfter, dest); - dest.push({changes: antiChanges, generation: hist.generation}); - hist.generation = event.generation || ++hist.maxGeneration; - - var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); - - for (var i = event.changes.length - 1; i >= 0; --i) { - var change = event.changes[i]; - change.origin = type; - if (filter && !filterChange(doc, change, false)) { - source.length = 0; - return; - } - - antiChanges.push(historyChangeFromChange(doc, change)); - - var after = i ? computeSelAfterChange(doc, change) : lst(source); - makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); - if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); - var rebased = []; - - // Propagate to the linked documents - linkedDocs(doc, function(doc, sharedHist) { - if (!sharedHist && indexOf(rebased, doc.history) == -1) { - rebaseHist(doc.history, change); - rebased.push(doc.history); - } - makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); - }); - } - } - - // Sub-views need their line numbers shifted when text is added - // above or below them in the parent document. - function shiftDoc(doc, distance) { - if (distance == 0) return; - doc.first += distance; - doc.sel = new Selection(map(doc.sel.ranges, function(range) { - return new Range(Pos(range.anchor.line + distance, range.anchor.ch), - Pos(range.head.line + distance, range.head.ch)); - }), doc.sel.primIndex); - if (doc.cm) { - regChange(doc.cm, doc.first, doc.first - distance, distance); - for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) - regLineChange(doc.cm, l, "gutter"); - } - } - - // More lower-level change function, handling only a single document - // (not linked ones). - function makeChangeSingleDoc(doc, change, selAfter, spans) { - if (doc.cm && !doc.cm.curOp) - return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans); - - if (change.to.line < doc.first) { - shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); - return; - } - if (change.from.line > doc.lastLine()) return; - - // Clip the change to the size of this doc - if (change.from.line < doc.first) { - var shift = change.text.length - 1 - (doc.first - change.from.line); - shiftDoc(doc, shift); - change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), - text: [lst(change.text)], origin: change.origin}; - } - var last = doc.lastLine(); - if (change.to.line > last) { - change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), - text: [change.text[0]], origin: change.origin}; - } - - change.removed = getBetween(doc, change.from, change.to); - - if (!selAfter) selAfter = computeSelAfterChange(doc, change); - if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans); - else updateDoc(doc, change, spans); - setSelectionNoUndo(doc, selAfter, sel_dontScroll); - } - - // Handle the interaction of a change to a document with the editor - // that this document is part of. - function makeChangeSingleDocInEditor(cm, change, spans) { - var doc = cm.doc, display = cm.display, from = change.from, to = change.to; - - var recomputeMaxLength = false, checkWidthStart = from.line; - if (!cm.options.lineWrapping) { - checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); - doc.iter(checkWidthStart, to.line + 1, function(line) { - if (line == display.maxLine) { - recomputeMaxLength = true; - return true; - } - }); - } - - if (doc.sel.contains(change.from, change.to) > -1) - signalCursorActivity(cm); - - updateDoc(doc, change, spans, estimateHeight(cm)); - - if (!cm.options.lineWrapping) { - doc.iter(checkWidthStart, from.line + change.text.length, function(line) { - var len = lineLength(line); - if (len > display.maxLineLength) { - display.maxLine = line; - display.maxLineLength = len; - display.maxLineChanged = true; - recomputeMaxLength = false; - } - }); - if (recomputeMaxLength) cm.curOp.updateMaxLine = true; - } - - // Adjust frontier, schedule worker - doc.frontier = Math.min(doc.frontier, from.line); - startWorker(cm, 400); - - var lendiff = change.text.length - (to.line - from.line) - 1; - // Remember that these lines changed, for updating the display - if (change.full) - regChange(cm); - else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) - regLineChange(cm, from.line, "text"); - else - regChange(cm, from.line, to.line + 1, lendiff); - - var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change"); - if (changeHandler || changesHandler) { - var obj = { - from: from, to: to, - text: change.text, - removed: change.removed, - origin: change.origin - }; - if (changeHandler) signalLater(cm, "change", cm, obj); - if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); - } - cm.display.selForContextMenu = null; - } - - function replaceRange(doc, code, from, to, origin) { - if (!to) to = from; - if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; } - if (typeof code == "string") code = doc.splitLines(code); - makeChange(doc, {from: from, to: to, text: code, origin: origin}); - } - - // SCROLLING THINGS INTO VIEW - - // If an editor sits on the top or bottom of the window, partially - // scrolled out of view, this ensures that the cursor is visible. - function maybeScrollWindow(cm, coords) { - if (signalDOMEvent(cm, "scrollCursorIntoView")) return; - - var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; - if (coords.top + box.top < 0) doScroll = true; - else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false; - if (doScroll != null && !phantom) { - var scrollNode = elt("div", "\u200b", null, "position: absolute; top: " + - (coords.top - display.viewOffset - paddingTop(cm.display)) + "px; height: " + - (coords.bottom - coords.top + scrollGap(cm) + display.barHeight) + "px; left: " + - coords.left + "px; width: 2px;"); - cm.display.lineSpace.appendChild(scrollNode); - scrollNode.scrollIntoView(doScroll); - cm.display.lineSpace.removeChild(scrollNode); - } - } - - // Scroll a given position into view (immediately), verifying that - // it actually became visible (as line heights are accurately - // measured, the position of something may 'drift' during drawing). - function scrollPosIntoView(cm, pos, end, margin) { - if (margin == null) margin = 0; - for (var limit = 0; limit < 5; limit++) { - var changed = false, coords = cursorCoords(cm, pos); - var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); - var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left), - Math.min(coords.top, endCoords.top) - margin, - Math.max(coords.left, endCoords.left), - Math.max(coords.bottom, endCoords.bottom) + margin); - var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; - if (scrollPos.scrollTop != null) { - setScrollTop(cm, scrollPos.scrollTop); - if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true; - } - if (scrollPos.scrollLeft != null) { - setScrollLeft(cm, scrollPos.scrollLeft); - if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true; - } - if (!changed) break; - } - return coords; - } - - // Scroll a given set of coordinates into view (immediately). - function scrollIntoView(cm, x1, y1, x2, y2) { - var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2); - if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop); - if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft); - } - - // Calculate a new scroll position needed to scroll the given - // rectangle into view. Returns an object with scrollTop and - // scrollLeft properties. When these are undefined, the - // vertical/horizontal position does not need to be adjusted. - function calculateScrollPos(cm, x1, y1, x2, y2) { - var display = cm.display, snapMargin = textHeight(cm.display); - if (y1 < 0) y1 = 0; - var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; - var screen = displayHeight(cm), result = {}; - if (y2 - y1 > screen) y2 = y1 + screen; - var docBottom = cm.doc.height + paddingVert(display); - var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin; - if (y1 < screentop) { - result.scrollTop = atTop ? 0 : y1; - } else if (y2 > screentop + screen) { - var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen); - if (newTop != screentop) result.scrollTop = newTop; - } - - var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft; - var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0); - var tooWide = x2 - x1 > screenw; - if (tooWide) x2 = x1 + screenw; - if (x1 < 10) - result.scrollLeft = 0; - else if (x1 < screenleft) - result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10)); - else if (x2 > screenw + screenleft - 3) - result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw; - return result; - } - - // Store a relative adjustment to the scroll position in the current - // operation (to be applied when the operation finishes). - function addToScrollPos(cm, left, top) { - if (left != null || top != null) resolveScrollToPos(cm); - if (left != null) - cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left; - if (top != null) - cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; - } - - // Make sure that at the end of the operation the current cursor is - // shown. - function ensureCursorVisible(cm) { - resolveScrollToPos(cm); - var cur = cm.getCursor(), from = cur, to = cur; - if (!cm.options.lineWrapping) { - from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur; - to = Pos(cur.line, cur.ch + 1); - } - cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true}; - } - - // When an operation has its scrollToPos property set, and another - // scroll action is applied before the end of the operation, this - // 'simulates' scrolling that position into view in a cheap way, so - // that the effect of intermediate scroll commands is not ignored. - function resolveScrollToPos(cm) { - var range = cm.curOp.scrollToPos; - if (range) { - cm.curOp.scrollToPos = null; - var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to); - var sPos = calculateScrollPos(cm, Math.min(from.left, to.left), - Math.min(from.top, to.top) - range.margin, - Math.max(from.right, to.right), - Math.max(from.bottom, to.bottom) + range.margin); - cm.scrollTo(sPos.scrollLeft, sPos.scrollTop); - } - } - - // API UTILITIES - - // Indent the given line. The how parameter can be "smart", - // "add"/null, "subtract", or "prev". When aggressive is false - // (typically set to true for forced single-line indents), empty - // lines are not indented, and places where the mode returns Pass - // are left alone. - function indentLine(cm, n, how, aggressive) { - var doc = cm.doc, state; - if (how == null) how = "add"; - if (how == "smart") { - // Fall back to "prev" when the mode doesn't have an indentation - // method. - if (!doc.mode.indent) how = "prev"; - else state = getStateBefore(cm, n); - } - - var tabSize = cm.options.tabSize; - var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); - if (line.stateAfter) line.stateAfter = null; - var curSpaceString = line.text.match(/^\s*/)[0], indentation; - if (!aggressive && !/\S/.test(line.text)) { - indentation = 0; - how = "not"; - } else if (how == "smart") { - indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); - if (indentation == Pass || indentation > 150) { - if (!aggressive) return; - how = "prev"; - } - } - if (how == "prev") { - if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize); - else indentation = 0; - } else if (how == "add") { - indentation = curSpace + cm.options.indentUnit; - } else if (how == "subtract") { - indentation = curSpace - cm.options.indentUnit; - } else if (typeof how == "number") { - indentation = curSpace + how; - } - indentation = Math.max(0, indentation); - - var indentString = "", pos = 0; - if (cm.options.indentWithTabs) - for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} - if (pos < indentation) indentString += spaceStr(indentation - pos); - - if (indentString != curSpaceString) { - replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); - line.stateAfter = null; - return true; - } else { - // Ensure that, if the cursor was in the whitespace at the start - // of the line, it is moved to the end of that space. - for (var i = 0; i < doc.sel.ranges.length; i++) { - var range = doc.sel.ranges[i]; - if (range.head.line == n && range.head.ch < curSpaceString.length) { - var pos = Pos(n, curSpaceString.length); - replaceOneSelection(doc, i, new Range(pos, pos)); - break; - } - } - } - } - - // Utility for applying a change to a line by handle or number, - // returning the number and optionally registering the line as - // changed. - function changeLine(doc, handle, changeType, op) { - var no = handle, line = handle; - if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle)); - else no = lineNo(handle); - if (no == null) return null; - if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType); - return line; - } - - // Helper for deleting text near the selection(s), used to implement - // backspace, delete, and similar functionality. - function deleteNearSelection(cm, compute) { - var ranges = cm.doc.sel.ranges, kill = []; - // Build up a set of ranges to kill first, merging overlapping - // ranges. - for (var i = 0; i < ranges.length; i++) { - var toKill = compute(ranges[i]); - while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { - var replaced = kill.pop(); - if (cmp(replaced.from, toKill.from) < 0) { - toKill.from = replaced.from; - break; - } - } - kill.push(toKill); - } - // Next, remove those actual ranges. - runInOp(cm, function() { - for (var i = kill.length - 1; i >= 0; i--) - replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); - ensureCursorVisible(cm); - }); - } - - // Used for horizontal relative motion. Dir is -1 or 1 (left or - // right), unit can be "char", "column" (like char, but doesn't - // cross line boundaries), "word" (across next word), or "group" (to - // the start of next group of word or non-word-non-whitespace - // chars). The visually param controls whether, in right-to-left - // text, direction 1 means to move towards the next index in the - // string, or towards the character to the right of the current - // position. The resulting position will have a hitSide=true - // property if it reached the end of the document. - function findPosH(doc, pos, dir, unit, visually) { - var line = pos.line, ch = pos.ch, origDir = dir; - var lineObj = getLine(doc, line); - function findNextLine() { - var l = line + dir; - if (l < doc.first || l >= doc.first + doc.size) return false - line = l; - return lineObj = getLine(doc, l); - } - function moveOnce(boundToLine) { - var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true); - if (next == null) { - if (!boundToLine && findNextLine()) { - if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj); - else ch = dir < 0 ? lineObj.text.length : 0; - } else return false - } else ch = next; - return true; - } - - if (unit == "char") { - moveOnce() - } else if (unit == "column") { - moveOnce(true) - } else if (unit == "word" || unit == "group") { - var sawType = null, group = unit == "group"; - var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); - for (var first = true;; first = false) { - if (dir < 0 && !moveOnce(!first)) break; - var cur = lineObj.text.charAt(ch) || "\n"; - var type = isWordChar(cur, helper) ? "w" - : group && cur == "\n" ? "n" - : !group || /\s/.test(cur) ? null - : "p"; - if (group && !first && !type) type = "s"; - if (sawType && sawType != type) { - if (dir < 0) {dir = 1; moveOnce();} - break; - } - - if (type) sawType = type; - if (dir > 0 && !moveOnce(!first)) break; - } - } - var result = skipAtomic(doc, Pos(line, ch), pos, origDir, true); - if (!cmp(pos, result)) result.hitSide = true; - return result; - } - - // For relative vertical movement. Dir may be -1 or 1. Unit can be - // "page" or "line". The resulting position will have a hitSide=true - // property if it reached the end of the document. - function findPosV(cm, pos, dir, unit) { - var doc = cm.doc, x = pos.left, y; - if (unit == "page") { - var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); - var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3); - y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; - } else if (unit == "line") { - y = dir > 0 ? pos.bottom + 3 : pos.top - 3; - } - for (;;) { - var target = coordsChar(cm, x, y); - if (!target.outside) break; - if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; } - y += dir * 5; - } - return target; - } - - // EDITOR METHODS - - // The publicly visible API. Note that methodOp(f) means - // 'wrap f in an operation, performed on its `this` parameter'. - - // This is not the complete set of editor methods. Most of the - // methods defined on the Doc type are also injected into - // CodeMirror.prototype, for backwards compatibility and - // convenience. - - CodeMirror.prototype = { - constructor: CodeMirror, - focus: function(){window.focus(); this.display.input.focus();}, - - setOption: function(option, value) { - var options = this.options, old = options[option]; - if (options[option] == value && option != "mode") return; - options[option] = value; - if (optionHandlers.hasOwnProperty(option)) - operation(this, optionHandlers[option])(this, value, old); - }, - - getOption: function(option) {return this.options[option];}, - getDoc: function() {return this.doc;}, - - addKeyMap: function(map, bottom) { - this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map)); - }, - removeKeyMap: function(map) { - var maps = this.state.keyMaps; - for (var i = 0; i < maps.length; ++i) - if (maps[i] == map || maps[i].name == map) { - maps.splice(i, 1); - return true; - } - }, - - addOverlay: methodOp(function(spec, options) { - var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); - if (mode.startState) throw new Error("Overlays may not be stateful."); - insertSorted(this.state.overlays, - {mode: mode, modeSpec: spec, opaque: options && options.opaque, - priority: (options && options.priority) || 0}, - function(overlay) { return overlay.priority }) - this.state.modeGen++; - regChange(this); - }), - removeOverlay: methodOp(function(spec) { - var overlays = this.state.overlays; - for (var i = 0; i < overlays.length; ++i) { - var cur = overlays[i].modeSpec; - if (cur == spec || typeof spec == "string" && cur.name == spec) { - overlays.splice(i, 1); - this.state.modeGen++; - regChange(this); - return; - } - } - }), - - indentLine: methodOp(function(n, dir, aggressive) { - if (typeof dir != "string" && typeof dir != "number") { - if (dir == null) dir = this.options.smartIndent ? "smart" : "prev"; - else dir = dir ? "add" : "subtract"; - } - if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive); - }), - indentSelection: methodOp(function(how) { - var ranges = this.doc.sel.ranges, end = -1; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i]; - if (!range.empty()) { - var from = range.from(), to = range.to(); - var start = Math.max(end, from.line); - end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; - for (var j = start; j < end; ++j) - indentLine(this, j, how); - var newRanges = this.doc.sel.ranges; - if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) - replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); - } else if (range.head.line > end) { - indentLine(this, range.head.line, how, true); - end = range.head.line; - if (i == this.doc.sel.primIndex) ensureCursorVisible(this); - } - } - }), - - // Fetch the parser token for a given character. Useful for hacks - // that want to inspect the mode state (say, for completion). - getTokenAt: function(pos, precise) { - return takeToken(this, pos, precise); - }, - - getLineTokens: function(line, precise) { - return takeToken(this, Pos(line), precise, true); - }, - - getTokenTypeAt: function(pos) { - pos = clipPos(this.doc, pos); - var styles = getLineStyles(this, getLine(this.doc, pos.line)); - var before = 0, after = (styles.length - 1) / 2, ch = pos.ch; - var type; - if (ch == 0) type = styles[2]; - else for (;;) { - var mid = (before + after) >> 1; - if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid; - else if (styles[mid * 2 + 1] < ch) before = mid + 1; - else { type = styles[mid * 2 + 2]; break; } - } - var cut = type ? type.indexOf("cm-overlay ") : -1; - return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1); - }, - - getModeAt: function(pos) { - var mode = this.doc.mode; - if (!mode.innerMode) return mode; - return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode; - }, - - getHelper: function(pos, type) { - return this.getHelpers(pos, type)[0]; - }, - - getHelpers: function(pos, type) { - var found = []; - if (!helpers.hasOwnProperty(type)) return found; - var help = helpers[type], mode = this.getModeAt(pos); - if (typeof mode[type] == "string") { - if (help[mode[type]]) found.push(help[mode[type]]); - } else if (mode[type]) { - for (var i = 0; i < mode[type].length; i++) { - var val = help[mode[type][i]]; - if (val) found.push(val); - } - } else if (mode.helperType && help[mode.helperType]) { - found.push(help[mode.helperType]); - } else if (help[mode.name]) { - found.push(help[mode.name]); - } - for (var i = 0; i < help._global.length; i++) { - var cur = help._global[i]; - if (cur.pred(mode, this) && indexOf(found, cur.val) == -1) - found.push(cur.val); - } - return found; - }, - - getStateAfter: function(line, precise) { - var doc = this.doc; - line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); - return getStateBefore(this, line + 1, precise); - }, - - cursorCoords: function(start, mode) { - var pos, range = this.doc.sel.primary(); - if (start == null) pos = range.head; - else if (typeof start == "object") pos = clipPos(this.doc, start); - else pos = start ? range.from() : range.to(); - return cursorCoords(this, pos, mode || "page"); - }, - - charCoords: function(pos, mode) { - return charCoords(this, clipPos(this.doc, pos), mode || "page"); - }, - - coordsChar: function(coords, mode) { - coords = fromCoordSystem(this, coords, mode || "page"); - return coordsChar(this, coords.left, coords.top); - }, - - lineAtHeight: function(height, mode) { - height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top; - return lineAtHeight(this.doc, height + this.display.viewOffset); - }, - heightAtLine: function(line, mode) { - var end = false, lineObj; - if (typeof line == "number") { - var last = this.doc.first + this.doc.size - 1; - if (line < this.doc.first) line = this.doc.first; - else if (line > last) { line = last; end = true; } - lineObj = getLine(this.doc, line); - } else { - lineObj = line; - } - return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page").top + - (end ? this.doc.height - heightAtLine(lineObj) : 0); - }, - - defaultTextHeight: function() { return textHeight(this.display); }, - defaultCharWidth: function() { return charWidth(this.display); }, - - setGutterMarker: methodOp(function(line, gutterID, value) { - return changeLine(this.doc, line, "gutter", function(line) { - var markers = line.gutterMarkers || (line.gutterMarkers = {}); - markers[gutterID] = value; - if (!value && isEmpty(markers)) line.gutterMarkers = null; - return true; - }); - }), - - clearGutter: methodOp(function(gutterID) { - var cm = this, doc = cm.doc, i = doc.first; - doc.iter(function(line) { - if (line.gutterMarkers && line.gutterMarkers[gutterID]) { - line.gutterMarkers[gutterID] = null; - regLineChange(cm, i, "gutter"); - if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null; - } - ++i; - }); - }), - - lineInfo: function(line) { - if (typeof line == "number") { - if (!isLine(this.doc, line)) return null; - var n = line; - line = getLine(this.doc, line); - if (!line) return null; - } else { - var n = lineNo(line); - if (n == null) return null; - } - return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, - textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, - widgets: line.widgets}; - }, - - getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};}, - - addWidget: function(pos, node, scroll, vert, horiz) { - var display = this.display; - pos = cursorCoords(this, clipPos(this.doc, pos)); - var top = pos.bottom, left = pos.left; - node.style.position = "absolute"; - node.setAttribute("cm-ignore-events", "true"); - this.display.input.setUneditable(node); - display.sizer.appendChild(node); - if (vert == "over") { - top = pos.top; - } else if (vert == "above" || vert == "near") { - var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), - hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); - // Default to positioning above (if specified and possible); otherwise default to positioning below - if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) - top = pos.top - node.offsetHeight; - else if (pos.bottom + node.offsetHeight <= vspace) - top = pos.bottom; - if (left + node.offsetWidth > hspace) - left = hspace - node.offsetWidth; - } - node.style.top = top + "px"; - node.style.left = node.style.right = ""; - if (horiz == "right") { - left = display.sizer.clientWidth - node.offsetWidth; - node.style.right = "0px"; - } else { - if (horiz == "left") left = 0; - else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2; - node.style.left = left + "px"; - } - if (scroll) - scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight); - }, - - triggerOnKeyDown: methodOp(onKeyDown), - triggerOnKeyPress: methodOp(onKeyPress), - triggerOnKeyUp: onKeyUp, - - execCommand: function(cmd) { - if (commands.hasOwnProperty(cmd)) - return commands[cmd].call(null, this); - }, - - triggerElectric: methodOp(function(text) { triggerElectric(this, text); }), - - findPosH: function(from, amount, unit, visually) { - var dir = 1; - if (amount < 0) { dir = -1; amount = -amount; } - for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { - cur = findPosH(this.doc, cur, dir, unit, visually); - if (cur.hitSide) break; - } - return cur; - }, - - moveH: methodOp(function(dir, unit) { - var cm = this; - cm.extendSelectionsBy(function(range) { - if (cm.display.shift || cm.doc.extend || range.empty()) - return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually); - else - return dir < 0 ? range.from() : range.to(); - }, sel_move); - }), - - deleteH: methodOp(function(dir, unit) { - var sel = this.doc.sel, doc = this.doc; - if (sel.somethingSelected()) - doc.replaceSelection("", null, "+delete"); - else - deleteNearSelection(this, function(range) { - var other = findPosH(doc, range.head, dir, unit, false); - return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}; - }); - }), - - findPosV: function(from, amount, unit, goalColumn) { - var dir = 1, x = goalColumn; - if (amount < 0) { dir = -1; amount = -amount; } - for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { - var coords = cursorCoords(this, cur, "div"); - if (x == null) x = coords.left; - else coords.left = x; - cur = findPosV(this, coords, dir, unit); - if (cur.hitSide) break; - } - return cur; - }, - - moveV: methodOp(function(dir, unit) { - var cm = this, doc = this.doc, goals = []; - var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected(); - doc.extendSelectionsBy(function(range) { - if (collapse) - return dir < 0 ? range.from() : range.to(); - var headPos = cursorCoords(cm, range.head, "div"); - if (range.goalColumn != null) headPos.left = range.goalColumn; - goals.push(headPos.left); - var pos = findPosV(cm, headPos, dir, unit); - if (unit == "page" && range == doc.sel.primary()) - addToScrollPos(cm, null, charCoords(cm, pos, "div").top - headPos.top); - return pos; - }, sel_move); - if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++) - doc.sel.ranges[i].goalColumn = goals[i]; - }), - - // Find the word at the given position (as returned by coordsChar). - findWordAt: function(pos) { - var doc = this.doc, line = getLine(doc, pos.line).text; - var start = pos.ch, end = pos.ch; - if (line) { - var helper = this.getHelper(pos, "wordChars"); - if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end; - var startChar = line.charAt(start); - var check = isWordChar(startChar, helper) - ? function(ch) { return isWordChar(ch, helper); } - : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);} - : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);}; - while (start > 0 && check(line.charAt(start - 1))) --start; - while (end < line.length && check(line.charAt(end))) ++end; - } - return new Range(Pos(pos.line, start), Pos(pos.line, end)); - }, - - toggleOverwrite: function(value) { - if (value != null && value == this.state.overwrite) return; - if (this.state.overwrite = !this.state.overwrite) - addClass(this.display.cursorDiv, "CodeMirror-overwrite"); - else - rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); - - signal(this, "overwriteToggle", this, this.state.overwrite); - }, - hasFocus: function() { return this.display.input.getField() == activeElt(); }, - isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit); }, - - scrollTo: methodOp(function(x, y) { - if (x != null || y != null) resolveScrollToPos(this); - if (x != null) this.curOp.scrollLeft = x; - if (y != null) this.curOp.scrollTop = y; - }), - getScrollInfo: function() { - var scroller = this.display.scroller; - return {left: scroller.scrollLeft, top: scroller.scrollTop, - height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight, - width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth, - clientHeight: displayHeight(this), clientWidth: displayWidth(this)}; - }, - - scrollIntoView: methodOp(function(range, margin) { - if (range == null) { - range = {from: this.doc.sel.primary().head, to: null}; - if (margin == null) margin = this.options.cursorScrollMargin; - } else if (typeof range == "number") { - range = {from: Pos(range, 0), to: null}; - } else if (range.from == null) { - range = {from: range, to: null}; - } - if (!range.to) range.to = range.from; - range.margin = margin || 0; - - if (range.from.line != null) { - resolveScrollToPos(this); - this.curOp.scrollToPos = range; - } else { - var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left), - Math.min(range.from.top, range.to.top) - range.margin, - Math.max(range.from.right, range.to.right), - Math.max(range.from.bottom, range.to.bottom) + range.margin); - this.scrollTo(sPos.scrollLeft, sPos.scrollTop); - } - }), - - setSize: methodOp(function(width, height) { - var cm = this; - function interpret(val) { - return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; - } - if (width != null) cm.display.wrapper.style.width = interpret(width); - if (height != null) cm.display.wrapper.style.height = interpret(height); - if (cm.options.lineWrapping) clearLineMeasurementCache(this); - var lineNo = cm.display.viewFrom; - cm.doc.iter(lineNo, cm.display.viewTo, function(line) { - if (line.widgets) for (var i = 0; i < line.widgets.length; i++) - if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, "widget"); break; } - ++lineNo; - }); - cm.curOp.forceUpdate = true; - signal(cm, "refresh", this); - }), - - operation: function(f){return runInOp(this, f);}, - - refresh: methodOp(function() { - var oldHeight = this.display.cachedTextHeight; - regChange(this); - this.curOp.forceUpdate = true; - clearCaches(this); - this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop); - updateGutterSpace(this); - if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5) - estimateLineHeights(this); - signal(this, "refresh", this); - }), - - swapDoc: methodOp(function(doc) { - var old = this.doc; - old.cm = null; - attachDoc(this, doc); - clearCaches(this); - this.display.input.reset(); - this.scrollTo(doc.scrollLeft, doc.scrollTop); - this.curOp.forceScroll = true; - signalLater(this, "swapDoc", this, old); - return old; - }), - - getInputField: function(){return this.display.input.getField();}, - getWrapperElement: function(){return this.display.wrapper;}, - getScrollerElement: function(){return this.display.scroller;}, - getGutterElement: function(){return this.display.gutters;} - }; - eventMixin(CodeMirror); - - // OPTION DEFAULTS - - // The default configuration options. - var defaults = CodeMirror.defaults = {}; - // Functions to run when options are changed. - var optionHandlers = CodeMirror.optionHandlers = {}; - - function option(name, deflt, handle, notOnInit) { - CodeMirror.defaults[name] = deflt; - if (handle) optionHandlers[name] = - notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle; - } - - // Passed to option handlers when there is no old value. - var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}}; - - // These two are, on init, called from the constructor because they - // have to be initialized before the editor can start at all. - option("value", "", function(cm, val) { - cm.setValue(val); - }, true); - option("mode", null, function(cm, val) { - cm.doc.modeOption = val; - loadMode(cm); - }, true); - - option("indentUnit", 2, loadMode, true); - option("indentWithTabs", false); - option("smartIndent", true); - option("tabSize", 4, function(cm) { - resetModeState(cm); - clearCaches(cm); - regChange(cm); - }, true); - option("lineSeparator", null, function(cm, val) { - cm.doc.lineSep = val; - if (!val) return; - var newBreaks = [], lineNo = cm.doc.first; - cm.doc.iter(function(line) { - for (var pos = 0;;) { - var found = line.text.indexOf(val, pos); - if (found == -1) break; - pos = found + val.length; - newBreaks.push(Pos(lineNo, found)); - } - lineNo++; - }); - for (var i = newBreaks.length - 1; i >= 0; i--) - replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)) - }); - option("specialChars", /[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val, old) { - cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); - if (old != CodeMirror.Init) cm.refresh(); - }); - option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true); - option("electricChars", true); - option("inputStyle", mobile ? "contenteditable" : "textarea", function() { - throw new Error("inputStyle can not (yet) be changed in a running editor"); // FIXME - }, true); - option("spellcheck", false, function(cm, val) { - cm.getInputField().spellcheck = val - }, true); - option("rtlMoveVisually", !windows); - option("wholeLineUpdateBefore", true); - - option("theme", "default", function(cm) { - themeChanged(cm); - guttersChanged(cm); - }, true); - option("keyMap", "default", function(cm, val, old) { - var next = getKeyMap(val); - var prev = old != CodeMirror.Init && getKeyMap(old); - if (prev && prev.detach) prev.detach(cm, next); - if (next.attach) next.attach(cm, prev || null); - }); - option("extraKeys", null); - - option("lineWrapping", false, wrappingChanged, true); - option("gutters", [], function(cm) { - setGuttersForLineNumbers(cm.options); - guttersChanged(cm); - }, true); - option("fixedGutter", true, function(cm, val) { - cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; - cm.refresh(); - }, true); - option("coverGutterNextToScrollbar", false, function(cm) {updateScrollbars(cm);}, true); - option("scrollbarStyle", "native", function(cm) { - initScrollbars(cm); - updateScrollbars(cm); - cm.display.scrollbars.setScrollTop(cm.doc.scrollTop); - cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft); - }, true); - option("lineNumbers", false, function(cm) { - setGuttersForLineNumbers(cm.options); - guttersChanged(cm); - }, true); - option("firstLineNumber", 1, guttersChanged, true); - option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true); - option("showCursorWhenSelecting", false, updateSelection, true); - - option("resetSelectionOnContextMenu", true); - option("lineWiseCopyCut", true); - - option("readOnly", false, function(cm, val) { - if (val == "nocursor") { - onBlur(cm); - cm.display.input.blur(); - cm.display.disabled = true; - } else { - cm.display.disabled = false; - } - cm.display.input.readOnlyChanged(val) - }); - option("disableInput", false, function(cm, val) {if (!val) cm.display.input.reset();}, true); - option("dragDrop", true, dragDropChanged); - option("allowDropFileTypes", null); - - option("cursorBlinkRate", 530); - option("cursorScrollMargin", 0); - option("cursorHeight", 1, updateSelection, true); - option("singleCursorHeightPerLine", true, updateSelection, true); - option("workTime", 100); - option("workDelay", 100); - option("flattenSpans", true, resetModeState, true); - option("addModeClass", false, resetModeState, true); - option("pollInterval", 100); - option("undoDepth", 200, function(cm, val){cm.doc.history.undoDepth = val;}); - option("historyEventDelay", 1250); - option("viewportMargin", 10, function(cm){cm.refresh();}, true); - option("maxHighlightLength", 10000, resetModeState, true); - option("moveInputWithCursor", true, function(cm, val) { - if (!val) cm.display.input.resetPosition(); - }); - - option("tabindex", null, function(cm, val) { - cm.display.input.getField().tabIndex = val || ""; - }); - option("autofocus", null); - - // MODE DEFINITION AND QUERYING - - // Known modes, by name and by MIME - var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; - - // Extra arguments are stored as the mode's dependencies, which is - // used by (legacy) mechanisms like loadmode.js to automatically - // load a mode. (Preferred mechanism is the require/define calls.) - CodeMirror.defineMode = function(name, mode) { - if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; - if (arguments.length > 2) - mode.dependencies = Array.prototype.slice.call(arguments, 2); - modes[name] = mode; - }; - - CodeMirror.defineMIME = function(mime, spec) { - mimeModes[mime] = spec; - }; - - // Given a MIME type, a {name, ...options} config object, or a name - // string, return a mode config object. - CodeMirror.resolveMode = function(spec) { - if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { - spec = mimeModes[spec]; - } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { - var found = mimeModes[spec.name]; - if (typeof found == "string") found = {name: found}; - spec = createObj(found, spec); - spec.name = found.name; - } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { - return CodeMirror.resolveMode("application/xml"); - } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) { - return CodeMirror.resolveMode("application/json"); - } - if (typeof spec == "string") return {name: spec}; - else return spec || {name: "null"}; - }; - - // Given a mode spec (anything that resolveMode accepts), find and - // initialize an actual mode object. - CodeMirror.getMode = function(options, spec) { - var spec = CodeMirror.resolveMode(spec); - var mfactory = modes[spec.name]; - if (!mfactory) return CodeMirror.getMode(options, "text/plain"); - var modeObj = mfactory(options, spec); - if (modeExtensions.hasOwnProperty(spec.name)) { - var exts = modeExtensions[spec.name]; - for (var prop in exts) { - if (!exts.hasOwnProperty(prop)) continue; - if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop]; - modeObj[prop] = exts[prop]; - } - } - modeObj.name = spec.name; - if (spec.helperType) modeObj.helperType = spec.helperType; - if (spec.modeProps) for (var prop in spec.modeProps) - modeObj[prop] = spec.modeProps[prop]; - - return modeObj; - }; - - // Minimal default mode. - CodeMirror.defineMode("null", function() { - return {token: function(stream) {stream.skipToEnd();}}; - }); - CodeMirror.defineMIME("text/plain", "null"); - - // This can be used to attach properties to mode objects from - // outside the actual mode definition. - var modeExtensions = CodeMirror.modeExtensions = {}; - CodeMirror.extendMode = function(mode, properties) { - var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); - copyObj(properties, exts); - }; - - // EXTENSIONS - - CodeMirror.defineExtension = function(name, func) { - CodeMirror.prototype[name] = func; - }; - CodeMirror.defineDocExtension = function(name, func) { - Doc.prototype[name] = func; - }; - CodeMirror.defineOption = option; - - var initHooks = []; - CodeMirror.defineInitHook = function(f) {initHooks.push(f);}; - - var helpers = CodeMirror.helpers = {}; - CodeMirror.registerHelper = function(type, name, value) { - if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []}; - helpers[type][name] = value; - }; - CodeMirror.registerGlobalHelper = function(type, name, predicate, value) { - CodeMirror.registerHelper(type, name, value); - helpers[type]._global.push({pred: predicate, val: value}); - }; - - // MODE STATE HANDLING - - // Utility functions for working with state. Exported because nested - // modes need to do this for their inner modes. - - var copyState = CodeMirror.copyState = function(mode, state) { - if (state === true) return state; - if (mode.copyState) return mode.copyState(state); - var nstate = {}; - for (var n in state) { - var val = state[n]; - if (val instanceof Array) val = val.concat([]); - nstate[n] = val; - } - return nstate; - }; - - var startState = CodeMirror.startState = function(mode, a1, a2) { - return mode.startState ? mode.startState(a1, a2) : true; - }; - - // Given a mode and a state (for that mode), find the inner mode and - // state at the position that the state refers to. - CodeMirror.innerMode = function(mode, state) { - while (mode.innerMode) { - var info = mode.innerMode(state); - if (!info || info.mode == mode) break; - state = info.state; - mode = info.mode; - } - return info || {mode: mode, state: state}; - }; - - // STANDARD COMMANDS - - // Commands are parameter-less actions that can be performed on an - // editor, mostly used for keybindings. - var commands = CodeMirror.commands = { - selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);}, - singleSelection: function(cm) { - cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); - }, - killLine: function(cm) { - deleteNearSelection(cm, function(range) { - if (range.empty()) { - var len = getLine(cm.doc, range.head.line).text.length; - if (range.head.ch == len && range.head.line < cm.lastLine()) - return {from: range.head, to: Pos(range.head.line + 1, 0)}; - else - return {from: range.head, to: Pos(range.head.line, len)}; - } else { - return {from: range.from(), to: range.to()}; - } - }); - }, - deleteLine: function(cm) { - deleteNearSelection(cm, function(range) { - return {from: Pos(range.from().line, 0), - to: clipPos(cm.doc, Pos(range.to().line + 1, 0))}; - }); - }, - delLineLeft: function(cm) { - deleteNearSelection(cm, function(range) { - return {from: Pos(range.from().line, 0), to: range.from()}; - }); - }, - delWrappedLineLeft: function(cm) { - deleteNearSelection(cm, function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - var leftPos = cm.coordsChar({left: 0, top: top}, "div"); - return {from: leftPos, to: range.from()}; - }); - }, - delWrappedLineRight: function(cm) { - deleteNearSelection(cm, function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); - return {from: range.from(), to: rightPos }; - }); - }, - undo: function(cm) {cm.undo();}, - redo: function(cm) {cm.redo();}, - undoSelection: function(cm) {cm.undoSelection();}, - redoSelection: function(cm) {cm.redoSelection();}, - goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));}, - goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));}, - goLineStart: function(cm) { - cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); }, - {origin: "+move", bias: 1}); - }, - goLineStartSmart: function(cm) { - cm.extendSelectionsBy(function(range) { - return lineStartSmart(cm, range.head); - }, {origin: "+move", bias: 1}); - }, - goLineEnd: function(cm) { - cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); }, - {origin: "+move", bias: -1}); - }, - goLineRight: function(cm) { - cm.extendSelectionsBy(function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); - }, sel_move); - }, - goLineLeft: function(cm) { - cm.extendSelectionsBy(function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - return cm.coordsChar({left: 0, top: top}, "div"); - }, sel_move); - }, - goLineLeftSmart: function(cm) { - cm.extendSelectionsBy(function(range) { - var top = cm.charCoords(range.head, "div").top + 5; - var pos = cm.coordsChar({left: 0, top: top}, "div"); - if (pos.ch < cm.getLine(pos.line).search(/\S/)) return lineStartSmart(cm, range.head); - return pos; - }, sel_move); - }, - goLineUp: function(cm) {cm.moveV(-1, "line");}, - goLineDown: function(cm) {cm.moveV(1, "line");}, - goPageUp: function(cm) {cm.moveV(-1, "page");}, - goPageDown: function(cm) {cm.moveV(1, "page");}, - goCharLeft: function(cm) {cm.moveH(-1, "char");}, - goCharRight: function(cm) {cm.moveH(1, "char");}, - goColumnLeft: function(cm) {cm.moveH(-1, "column");}, - goColumnRight: function(cm) {cm.moveH(1, "column");}, - goWordLeft: function(cm) {cm.moveH(-1, "word");}, - goGroupRight: function(cm) {cm.moveH(1, "group");}, - goGroupLeft: function(cm) {cm.moveH(-1, "group");}, - goWordRight: function(cm) {cm.moveH(1, "word");}, - delCharBefore: function(cm) {cm.deleteH(-1, "char");}, - delCharAfter: function(cm) {cm.deleteH(1, "char");}, - delWordBefore: function(cm) {cm.deleteH(-1, "word");}, - delWordAfter: function(cm) {cm.deleteH(1, "word");}, - delGroupBefore: function(cm) {cm.deleteH(-1, "group");}, - delGroupAfter: function(cm) {cm.deleteH(1, "group");}, - indentAuto: function(cm) {cm.indentSelection("smart");}, - indentMore: function(cm) {cm.indentSelection("add");}, - indentLess: function(cm) {cm.indentSelection("subtract");}, - insertTab: function(cm) {cm.replaceSelection("\t");}, - insertSoftTab: function(cm) { - var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize; - for (var i = 0; i < ranges.length; i++) { - var pos = ranges[i].from(); - var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); - spaces.push(spaceStr(tabSize - col % tabSize)); - } - cm.replaceSelections(spaces); - }, - defaultTab: function(cm) { - if (cm.somethingSelected()) cm.indentSelection("add"); - else cm.execCommand("insertTab"); - }, - transposeChars: function(cm) { - runInOp(cm, function() { - var ranges = cm.listSelections(), newSel = []; - for (var i = 0; i < ranges.length; i++) { - var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text; - if (line) { - if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1); - if (cur.ch > 0) { - cur = new Pos(cur.line, cur.ch + 1); - cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), - Pos(cur.line, cur.ch - 2), cur, "+transpose"); - } else if (cur.line > cm.doc.first) { - var prev = getLine(cm.doc, cur.line - 1).text; - if (prev) - cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() + - prev.charAt(prev.length - 1), - Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), "+transpose"); - } - } - newSel.push(new Range(cur, cur)); - } - cm.setSelections(newSel); - }); - }, - newlineAndIndent: function(cm) { - runInOp(cm, function() { - var len = cm.listSelections().length; - for (var i = 0; i < len; i++) { - var range = cm.listSelections()[i]; - cm.replaceRange(cm.doc.lineSeparator(), range.anchor, range.head, "+input"); - cm.indentLine(range.from().line + 1, null, true); - } - ensureCursorVisible(cm); - }); - }, - openLine: function(cm) {cm.replaceSelection("\n", "start")}, - toggleOverwrite: function(cm) {cm.toggleOverwrite();} - }; - - - // STANDARD KEYMAPS - - var keyMap = CodeMirror.keyMap = {}; - - keyMap.basic = { - "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", - "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", - "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore", - "Tab": "defaultTab", "Shift-Tab": "indentAuto", - "Enter": "newlineAndIndent", "Insert": "toggleOverwrite", - "Esc": "singleSelection" - }; - // Note that the save and find-related commands aren't defined by - // default. User code or addons can define them. Unknown commands - // are simply ignored. - keyMap.pcDefault = { - "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", - "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown", - "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", - "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", - "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", - "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", - "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection", - fallthrough: "basic" - }; - // Very basic readline/emacs-style bindings, which are standard on Mac. - keyMap.emacsy = { - "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", - "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", - "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", - "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars", - "Ctrl-O": "openLine" - }; - keyMap.macDefault = { - "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", - "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", - "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore", - "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", - "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", - "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight", - "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd", - fallthrough: ["basic", "emacsy"] - }; - keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; - - // KEYMAP DISPATCH - - function normalizeKeyName(name) { - var parts = name.split(/-(?!$)/), name = parts[parts.length - 1]; - var alt, ctrl, shift, cmd; - for (var i = 0; i < parts.length - 1; i++) { - var mod = parts[i]; - if (/^(cmd|meta|m)$/i.test(mod)) cmd = true; - else if (/^a(lt)?$/i.test(mod)) alt = true; - else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true; - else if (/^s(hift)$/i.test(mod)) shift = true; - else throw new Error("Unrecognized modifier name: " + mod); - } - if (alt) name = "Alt-" + name; - if (ctrl) name = "Ctrl-" + name; - if (cmd) name = "Cmd-" + name; - if (shift) name = "Shift-" + name; - return name; - } - - // This is a kludge to keep keymaps mostly working as raw objects - // (backwards compatibility) while at the same time support features - // like normalization and multi-stroke key bindings. It compiles a - // new normalized keymap, and then updates the old object to reflect - // this. - CodeMirror.normalizeKeyMap = function(keymap) { - var copy = {}; - for (var keyname in keymap) if (keymap.hasOwnProperty(keyname)) { - var value = keymap[keyname]; - if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) continue; - if (value == "...") { delete keymap[keyname]; continue; } - - var keys = map(keyname.split(" "), normalizeKeyName); - for (var i = 0; i < keys.length; i++) { - var val, name; - if (i == keys.length - 1) { - name = keys.join(" "); - val = value; - } else { - name = keys.slice(0, i + 1).join(" "); - val = "..."; - } - var prev = copy[name]; - if (!prev) copy[name] = val; - else if (prev != val) throw new Error("Inconsistent bindings for " + name); - } - delete keymap[keyname]; - } - for (var prop in copy) keymap[prop] = copy[prop]; - return keymap; - }; - - var lookupKey = CodeMirror.lookupKey = function(key, map, handle, context) { - map = getKeyMap(map); - var found = map.call ? map.call(key, context) : map[key]; - if (found === false) return "nothing"; - if (found === "...") return "multi"; - if (found != null && handle(found)) return "handled"; - - if (map.fallthrough) { - if (Object.prototype.toString.call(map.fallthrough) != "[object Array]") - return lookupKey(key, map.fallthrough, handle, context); - for (var i = 0; i < map.fallthrough.length; i++) { - var result = lookupKey(key, map.fallthrough[i], handle, context); - if (result) return result; - } - } - }; - - // Modifier key presses don't count as 'real' key presses for the - // purpose of keymap fallthrough. - var isModifierKey = CodeMirror.isModifierKey = function(value) { - var name = typeof value == "string" ? value : keyNames[value.keyCode]; - return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; - }; - - // Look up the name of a key as indicated by an event object. - var keyName = CodeMirror.keyName = function(event, noShift) { - if (presto && event.keyCode == 34 && event["char"]) return false; - var base = keyNames[event.keyCode], name = base; - if (name == null || event.altGraphKey) return false; - if (event.altKey && base != "Alt") name = "Alt-" + name; - if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") name = "Ctrl-" + name; - if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") name = "Cmd-" + name; - if (!noShift && event.shiftKey && base != "Shift") name = "Shift-" + name; - return name; - }; - - function getKeyMap(val) { - return typeof val == "string" ? keyMap[val] : val; - } - - // FROMTEXTAREA - - CodeMirror.fromTextArea = function(textarea, options) { - options = options ? copyObj(options) : {}; - options.value = textarea.value; - if (!options.tabindex && textarea.tabIndex) - options.tabindex = textarea.tabIndex; - if (!options.placeholder && textarea.placeholder) - options.placeholder = textarea.placeholder; - // Set autofocus to true if this textarea is focused, or if it has - // autofocus and no other element is focused. - if (options.autofocus == null) { - var hasFocus = activeElt(); - options.autofocus = hasFocus == textarea || - textarea.getAttribute("autofocus") != null && hasFocus == document.body; - } - - function save() {textarea.value = cm.getValue();} - if (textarea.form) { - on(textarea.form, "submit", save); - // Deplorable hack to make the submit method do the right thing. - if (!options.leaveSubmitMethodAlone) { - var form = textarea.form, realSubmit = form.submit; - try { - var wrappedSubmit = form.submit = function() { - save(); - form.submit = realSubmit; - form.submit(); - form.submit = wrappedSubmit; - }; - } catch(e) {} - } - } - - options.finishInit = function(cm) { - cm.save = save; - cm.getTextArea = function() { return textarea; }; - cm.toTextArea = function() { - cm.toTextArea = isNaN; // Prevent this from being ran twice - save(); - textarea.parentNode.removeChild(cm.getWrapperElement()); - textarea.style.display = ""; - if (textarea.form) { - off(textarea.form, "submit", save); - if (typeof textarea.form.submit == "function") - textarea.form.submit = realSubmit; - } - }; - }; - - textarea.style.display = "none"; - var cm = CodeMirror(function(node) { - textarea.parentNode.insertBefore(node, textarea.nextSibling); - }, options); - return cm; - }; - - // STRING STREAM - - // Fed to the mode parsers, provides helper functions to make - // parsers more succinct. - - var StringStream = CodeMirror.StringStream = function(string, tabSize) { - this.pos = this.start = 0; - this.string = string; - this.tabSize = tabSize || 8; - this.lastColumnPos = this.lastColumnValue = 0; - this.lineStart = 0; - }; - - StringStream.prototype = { - eol: function() {return this.pos >= this.string.length;}, - sol: function() {return this.pos == this.lineStart;}, - peek: function() {return this.string.charAt(this.pos) || undefined;}, - next: function() { - if (this.pos < this.string.length) - return this.string.charAt(this.pos++); - }, - eat: function(match) { - var ch = this.string.charAt(this.pos); - if (typeof match == "string") var ok = ch == match; - else var ok = ch && (match.test ? match.test(ch) : match(ch)); - if (ok) {++this.pos; return ch;} - }, - eatWhile: function(match) { - var start = this.pos; - while (this.eat(match)){} - return this.pos > start; - }, - eatSpace: function() { - var start = this.pos; - while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; - return this.pos > start; - }, - skipToEnd: function() {this.pos = this.string.length;}, - skipTo: function(ch) { - var found = this.string.indexOf(ch, this.pos); - if (found > -1) {this.pos = found; return true;} - }, - backUp: function(n) {this.pos -= n;}, - column: function() { - if (this.lastColumnPos < this.start) { - this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); - this.lastColumnPos = this.start; - } - return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); - }, - indentation: function() { - return countColumn(this.string, null, this.tabSize) - - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); - }, - match: function(pattern, consume, caseInsensitive) { - if (typeof pattern == "string") { - var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; - var substr = this.string.substr(this.pos, pattern.length); - if (cased(substr) == cased(pattern)) { - if (consume !== false) this.pos += pattern.length; - return true; - } - } else { - var match = this.string.slice(this.pos).match(pattern); - if (match && match.index > 0) return null; - if (match && consume !== false) this.pos += match[0].length; - return match; - } - }, - current: function(){return this.string.slice(this.start, this.pos);}, - hideFirstChars: function(n, inner) { - this.lineStart += n; - try { return inner(); } - finally { this.lineStart -= n; } - } - }; - - // TEXTMARKERS - - // Created with markText and setBookmark methods. A TextMarker is a - // handle that can be used to clear or find a marked position in the - // document. Line objects hold arrays (markedSpans) containing - // {from, to, marker} object pointing to such marker objects, and - // indicating that such a marker is present on that line. Multiple - // lines may point to the same marker when it spans across lines. - // The spans will have null for their from/to properties when the - // marker continues beyond the start/end of the line. Markers have - // links back to the lines they currently touch. - - var nextMarkerId = 0; - - var TextMarker = CodeMirror.TextMarker = function(doc, type) { - this.lines = []; - this.type = type; - this.doc = doc; - this.id = ++nextMarkerId; - }; - eventMixin(TextMarker); - - // Clear the marker. - TextMarker.prototype.clear = function() { - if (this.explicitlyCleared) return; - var cm = this.doc.cm, withOp = cm && !cm.curOp; - if (withOp) startOperation(cm); - if (hasHandler(this, "clear")) { - var found = this.find(); - if (found) signalLater(this, "clear", found.from, found.to); - } - var min = null, max = null; - for (var i = 0; i < this.lines.length; ++i) { - var line = this.lines[i]; - var span = getMarkedSpanFor(line.markedSpans, this); - if (cm && !this.collapsed) regLineChange(cm, lineNo(line), "text"); - else if (cm) { - if (span.to != null) max = lineNo(line); - if (span.from != null) min = lineNo(line); - } - line.markedSpans = removeMarkedSpan(line.markedSpans, span); - if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm) - updateLineHeight(line, textHeight(cm.display)); - } - if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) { - var visual = visualLine(this.lines[i]), len = lineLength(visual); - if (len > cm.display.maxLineLength) { - cm.display.maxLine = visual; - cm.display.maxLineLength = len; - cm.display.maxLineChanged = true; - } - } - - if (min != null && cm && this.collapsed) regChange(cm, min, max + 1); - this.lines.length = 0; - this.explicitlyCleared = true; - if (this.atomic && this.doc.cantEdit) { - this.doc.cantEdit = false; - if (cm) reCheckSelection(cm.doc); - } - if (cm) signalLater(cm, "markerCleared", cm, this); - if (withOp) endOperation(cm); - if (this.parent) this.parent.clear(); - }; - - // Find the position of the marker in the document. Returns a {from, - // to} object by default. Side can be passed to get a specific side - // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the - // Pos objects returned contain a line object, rather than a line - // number (used to prevent looking up the same line twice). - TextMarker.prototype.find = function(side, lineObj) { - if (side == null && this.type == "bookmark") side = 1; - var from, to; - for (var i = 0; i < this.lines.length; ++i) { - var line = this.lines[i]; - var span = getMarkedSpanFor(line.markedSpans, this); - if (span.from != null) { - from = Pos(lineObj ? line : lineNo(line), span.from); - if (side == -1) return from; - } - if (span.to != null) { - to = Pos(lineObj ? line : lineNo(line), span.to); - if (side == 1) return to; - } - } - return from && {from: from, to: to}; - }; - - // Signals that the marker's widget changed, and surrounding layout - // should be recomputed. - TextMarker.prototype.changed = function() { - var pos = this.find(-1, true), widget = this, cm = this.doc.cm; - if (!pos || !cm) return; - runInOp(cm, function() { - var line = pos.line, lineN = lineNo(pos.line); - var view = findViewForLine(cm, lineN); - if (view) { - clearLineMeasurementCacheFor(view); - cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; - } - cm.curOp.updateMaxLine = true; - if (!lineIsHidden(widget.doc, line) && widget.height != null) { - var oldHeight = widget.height; - widget.height = null; - var dHeight = widgetHeight(widget) - oldHeight; - if (dHeight) - updateLineHeight(line, line.height + dHeight); - } - }); - }; - - TextMarker.prototype.attachLine = function(line) { - if (!this.lines.length && this.doc.cm) { - var op = this.doc.cm.curOp; - if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) - (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); - } - this.lines.push(line); - }; - TextMarker.prototype.detachLine = function(line) { - this.lines.splice(indexOf(this.lines, line), 1); - if (!this.lines.length && this.doc.cm) { - var op = this.doc.cm.curOp; - (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); - } - }; - - // Collapsed markers have unique ids, in order to be able to order - // them, which is needed for uniquely determining an outer marker - // when they overlap (they may nest, but not partially overlap). - var nextMarkerId = 0; - - // Create a marker, wire it up to the right lines, and - function markText(doc, from, to, options, type) { - // Shared markers (across linked documents) are handled separately - // (markTextShared will call out to this again, once per - // document). - if (options && options.shared) return markTextShared(doc, from, to, options, type); - // Ensure we are in an operation. - if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type); - - var marker = new TextMarker(doc, type), diff = cmp(from, to); - if (options) copyObj(options, marker, false); - // Don't connect empty markers unless clearWhenEmpty is false - if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) - return marker; - if (marker.replacedWith) { - // Showing up as a widget implies collapsed (widget replaces text) - marker.collapsed = true; - marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget"); - if (!options.handleMouseEvents) marker.widgetNode.setAttribute("cm-ignore-events", "true"); - if (options.insertLeft) marker.widgetNode.insertLeft = true; - } - if (marker.collapsed) { - if (conflictingCollapsedRange(doc, from.line, from, to, marker) || - from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) - throw new Error("Inserting collapsed marker partially overlapping an existing one"); - sawCollapsedSpans = true; - } - - if (marker.addToHistory) - addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); - - var curLine = from.line, cm = doc.cm, updateMaxLine; - doc.iter(curLine, to.line + 1, function(line) { - if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) - updateMaxLine = true; - if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0); - addMarkedSpan(line, new MarkedSpan(marker, - curLine == from.line ? from.ch : null, - curLine == to.line ? to.ch : null)); - ++curLine; - }); - // lineIsHidden depends on the presence of the spans, so needs a second pass - if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) { - if (lineIsHidden(doc, line)) updateLineHeight(line, 0); - }); - - if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); }); - - if (marker.readOnly) { - sawReadOnlySpans = true; - if (doc.history.done.length || doc.history.undone.length) - doc.clearHistory(); - } - if (marker.collapsed) { - marker.id = ++nextMarkerId; - marker.atomic = true; - } - if (cm) { - // Sync editor state - if (updateMaxLine) cm.curOp.updateMaxLine = true; - if (marker.collapsed) - regChange(cm, from.line, to.line + 1); - else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css) - for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, "text"); - if (marker.atomic) reCheckSelection(cm.doc); - signalLater(cm, "markerAdded", cm, marker); - } - return marker; - } - - // SHARED TEXTMARKERS - - // A shared marker spans multiple linked documents. It is - // implemented as a meta-marker-object controlling multiple normal - // markers. - var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) { - this.markers = markers; - this.primary = primary; - for (var i = 0; i < markers.length; ++i) - markers[i].parent = this; - }; - eventMixin(SharedTextMarker); - - SharedTextMarker.prototype.clear = function() { - if (this.explicitlyCleared) return; - this.explicitlyCleared = true; - for (var i = 0; i < this.markers.length; ++i) - this.markers[i].clear(); - signalLater(this, "clear"); - }; - SharedTextMarker.prototype.find = function(side, lineObj) { - return this.primary.find(side, lineObj); - }; - - function markTextShared(doc, from, to, options, type) { - options = copyObj(options); - options.shared = false; - var markers = [markText(doc, from, to, options, type)], primary = markers[0]; - var widget = options.widgetNode; - linkedDocs(doc, function(doc) { - if (widget) options.widgetNode = widget.cloneNode(true); - markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); - for (var i = 0; i < doc.linked.length; ++i) - if (doc.linked[i].isParent) return; - primary = lst(markers); - }); - return new SharedTextMarker(markers, primary); - } - - function findSharedMarkers(doc) { - return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), - function(m) { return m.parent; }); - } - - function copySharedMarkers(doc, markers) { - for (var i = 0; i < markers.length; i++) { - var marker = markers[i], pos = marker.find(); - var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to); - if (cmp(mFrom, mTo)) { - var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); - marker.markers.push(subMark); - subMark.parent = marker; - } - } - } - - function detachSharedMarkers(markers) { - for (var i = 0; i < markers.length; i++) { - var marker = markers[i], linked = [marker.primary.doc];; - linkedDocs(marker.primary.doc, function(d) { linked.push(d); }); - for (var j = 0; j < marker.markers.length; j++) { - var subMarker = marker.markers[j]; - if (indexOf(linked, subMarker.doc) == -1) { - subMarker.parent = null; - marker.markers.splice(j--, 1); - } - } - } - } - - // TEXTMARKER SPANS - - function MarkedSpan(marker, from, to) { - this.marker = marker; - this.from = from; this.to = to; - } - - // Search an array of spans for a span matching the given marker. - function getMarkedSpanFor(spans, marker) { - if (spans) for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - if (span.marker == marker) return span; - } - } - // Remove a span from an array, returning undefined if no spans are - // left (we don't store arrays for lines without spans). - function removeMarkedSpan(spans, span) { - for (var r, i = 0; i < spans.length; ++i) - if (spans[i] != span) (r || (r = [])).push(spans[i]); - return r; - } - // Add a span to a line. - function addMarkedSpan(line, span) { - line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; - span.marker.attachLine(line); - } - - // Used for the algorithm that adjusts markers for a change in the - // document. These functions cut an array of spans at a given - // character position, returning an array of remaining chunks (or - // undefined if nothing remains). - function markedSpansBefore(old, startCh, isInsert) { - if (old) for (var i = 0, nw; i < old.length; ++i) { - var span = old[i], marker = span.marker; - var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); - if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { - var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh); - (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); - } - } - return nw; - } - function markedSpansAfter(old, endCh, isInsert) { - if (old) for (var i = 0, nw; i < old.length; ++i) { - var span = old[i], marker = span.marker; - var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); - if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { - var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh); - (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, - span.to == null ? null : span.to - endCh)); - } - } - return nw; - } - - // Given a change object, compute the new set of marker spans that - // cover the line in which the change took place. Removes spans - // entirely within the change, reconnects spans belonging to the - // same marker that appear on both sides of the change, and cuts off - // spans partially within the change. Returns an array of span - // arrays with one element for each line in (after) the change. - function stretchSpansOverChange(doc, change) { - if (change.full) return null; - var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; - var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; - if (!oldFirst && !oldLast) return null; - - var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0; - // Get the spans that 'stick out' on both sides - var first = markedSpansBefore(oldFirst, startCh, isInsert); - var last = markedSpansAfter(oldLast, endCh, isInsert); - - // Next, merge those two ends - var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); - if (first) { - // Fix up .to properties of first - for (var i = 0; i < first.length; ++i) { - var span = first[i]; - if (span.to == null) { - var found = getMarkedSpanFor(last, span.marker); - if (!found) span.to = startCh; - else if (sameLine) span.to = found.to == null ? null : found.to + offset; - } - } - } - if (last) { - // Fix up .from in last (or move them into first in case of sameLine) - for (var i = 0; i < last.length; ++i) { - var span = last[i]; - if (span.to != null) span.to += offset; - if (span.from == null) { - var found = getMarkedSpanFor(first, span.marker); - if (!found) { - span.from = offset; - if (sameLine) (first || (first = [])).push(span); - } - } else { - span.from += offset; - if (sameLine) (first || (first = [])).push(span); - } - } - } - // Make sure we didn't create any zero-length spans - if (first) first = clearEmptySpans(first); - if (last && last != first) last = clearEmptySpans(last); - - var newMarkers = [first]; - if (!sameLine) { - // Fill gap with whole-line-spans - var gap = change.text.length - 2, gapMarkers; - if (gap > 0 && first) - for (var i = 0; i < first.length; ++i) - if (first[i].to == null) - (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null)); - for (var i = 0; i < gap; ++i) - newMarkers.push(gapMarkers); - newMarkers.push(last); - } - return newMarkers; - } - - // Remove spans that are empty and don't have a clearWhenEmpty - // option of false. - function clearEmptySpans(spans) { - for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) - spans.splice(i--, 1); - } - if (!spans.length) return null; - return spans; - } - - // Used for un/re-doing changes from the history. Combines the - // result of computing the existing spans with the set of spans that - // existed in the history (so that deleting around a span and then - // undoing brings back the span). - function mergeOldSpans(doc, change) { - var old = getOldSpans(doc, change); - var stretched = stretchSpansOverChange(doc, change); - if (!old) return stretched; - if (!stretched) return old; - - for (var i = 0; i < old.length; ++i) { - var oldCur = old[i], stretchCur = stretched[i]; - if (oldCur && stretchCur) { - spans: for (var j = 0; j < stretchCur.length; ++j) { - var span = stretchCur[j]; - for (var k = 0; k < oldCur.length; ++k) - if (oldCur[k].marker == span.marker) continue spans; - oldCur.push(span); - } - } else if (stretchCur) { - old[i] = stretchCur; - } - } - return old; - } - - // Used to 'clip' out readOnly ranges when making a change. - function removeReadOnlyRanges(doc, from, to) { - var markers = null; - doc.iter(from.line, to.line + 1, function(line) { - if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) { - var mark = line.markedSpans[i].marker; - if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) - (markers || (markers = [])).push(mark); - } - }); - if (!markers) return null; - var parts = [{from: from, to: to}]; - for (var i = 0; i < markers.length; ++i) { - var mk = markers[i], m = mk.find(0); - for (var j = 0; j < parts.length; ++j) { - var p = parts[j]; - if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue; - var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to); - if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) - newParts.push({from: p.from, to: m.from}); - if (dto > 0 || !mk.inclusiveRight && !dto) - newParts.push({from: m.to, to: p.to}); - parts.splice.apply(parts, newParts); - j += newParts.length - 1; - } - } - return parts; - } - - // Connect or disconnect spans from a line. - function detachMarkedSpans(line) { - var spans = line.markedSpans; - if (!spans) return; - for (var i = 0; i < spans.length; ++i) - spans[i].marker.detachLine(line); - line.markedSpans = null; - } - function attachMarkedSpans(line, spans) { - if (!spans) return; - for (var i = 0; i < spans.length; ++i) - spans[i].marker.attachLine(line); - line.markedSpans = spans; - } - - // Helpers used when computing which overlapping collapsed span - // counts as the larger one. - function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; } - function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; } - - // Returns a number indicating which of two overlapping collapsed - // spans is larger (and thus includes the other). Falls back to - // comparing ids when the spans cover exactly the same range. - function compareCollapsedMarkers(a, b) { - var lenDiff = a.lines.length - b.lines.length; - if (lenDiff != 0) return lenDiff; - var aPos = a.find(), bPos = b.find(); - var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); - if (fromCmp) return -fromCmp; - var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); - if (toCmp) return toCmp; - return b.id - a.id; - } - - // Find out whether a line ends or starts in a collapsed span. If - // so, return the marker for that span. - function collapsedSpanAtSide(line, start) { - var sps = sawCollapsedSpans && line.markedSpans, found; - if (sps) for (var sp, i = 0; i < sps.length; ++i) { - sp = sps[i]; - if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && - (!found || compareCollapsedMarkers(found, sp.marker) < 0)) - found = sp.marker; - } - return found; - } - function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); } - function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); } - - // Test whether there exists a collapsed span that partially - // overlaps (covers the start or end, but not both) of a new span. - // Such overlap is not allowed. - function conflictingCollapsedRange(doc, lineNo, from, to, marker) { - var line = getLine(doc, lineNo); - var sps = sawCollapsedSpans && line.markedSpans; - if (sps) for (var i = 0; i < sps.length; ++i) { - var sp = sps[i]; - if (!sp.marker.collapsed) continue; - var found = sp.marker.find(0); - var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); - var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); - if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue; - if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) || - fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0)) - return true; - } - } - - // A visual line is a line as drawn on the screen. Folding, for - // example, can cause multiple logical lines to appear on the same - // visual line. This finds the start of the visual line that the - // given line is part of (usually that is the line itself). - function visualLine(line) { - var merged; - while (merged = collapsedSpanAtStart(line)) - line = merged.find(-1, true).line; - return line; - } - - // Returns an array of logical lines that continue the visual line - // started by the argument, or undefined if there are no such lines. - function visualLineContinued(line) { - var merged, lines; - while (merged = collapsedSpanAtEnd(line)) { - line = merged.find(1, true).line; - (lines || (lines = [])).push(line); - } - return lines; - } - - // Get the line number of the start of the visual line that the - // given line number is part of. - function visualLineNo(doc, lineN) { - var line = getLine(doc, lineN), vis = visualLine(line); - if (line == vis) return lineN; - return lineNo(vis); - } - // Get the line number of the start of the next visual line after - // the given line. - function visualLineEndNo(doc, lineN) { - if (lineN > doc.lastLine()) return lineN; - var line = getLine(doc, lineN), merged; - if (!lineIsHidden(doc, line)) return lineN; - while (merged = collapsedSpanAtEnd(line)) - line = merged.find(1, true).line; - return lineNo(line) + 1; - } - - // Compute whether a line is hidden. Lines count as hidden when they - // are part of a visual line that starts with another line, or when - // they are entirely covered by collapsed, non-widget span. - function lineIsHidden(doc, line) { - var sps = sawCollapsedSpans && line.markedSpans; - if (sps) for (var sp, i = 0; i < sps.length; ++i) { - sp = sps[i]; - if (!sp.marker.collapsed) continue; - if (sp.from == null) return true; - if (sp.marker.widgetNode) continue; - if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) - return true; - } - } - function lineIsHiddenInner(doc, line, span) { - if (span.to == null) { - var end = span.marker.find(1, true); - return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)); - } - if (span.marker.inclusiveRight && span.to == line.text.length) - return true; - for (var sp, i = 0; i < line.markedSpans.length; ++i) { - sp = line.markedSpans[i]; - if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && - (sp.to == null || sp.to != span.from) && - (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && - lineIsHiddenInner(doc, line, sp)) return true; - } - } - - // LINE WIDGETS - - // Line widgets are block elements displayed above or below a line. - - var LineWidget = CodeMirror.LineWidget = function(doc, node, options) { - if (options) for (var opt in options) if (options.hasOwnProperty(opt)) - this[opt] = options[opt]; - this.doc = doc; - this.node = node; - }; - eventMixin(LineWidget); - - function adjustScrollWhenAboveVisible(cm, line, diff) { - if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop)) - addToScrollPos(cm, null, diff); - } - - LineWidget.prototype.clear = function() { - var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line); - if (no == null || !ws) return; - for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1); - if (!ws.length) line.widgets = null; - var height = widgetHeight(this); - updateLineHeight(line, Math.max(0, line.height - height)); - if (cm) runInOp(cm, function() { - adjustScrollWhenAboveVisible(cm, line, -height); - regLineChange(cm, no, "widget"); - }); - }; - LineWidget.prototype.changed = function() { - var oldH = this.height, cm = this.doc.cm, line = this.line; - this.height = null; - var diff = widgetHeight(this) - oldH; - if (!diff) return; - updateLineHeight(line, line.height + diff); - if (cm) runInOp(cm, function() { - cm.curOp.forceUpdate = true; - adjustScrollWhenAboveVisible(cm, line, diff); - }); - }; - - function widgetHeight(widget) { - if (widget.height != null) return widget.height; - var cm = widget.doc.cm; - if (!cm) return 0; - if (!contains(document.body, widget.node)) { - var parentStyle = "position: relative;"; - if (widget.coverGutter) - parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; - if (widget.noHScroll) - parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; - removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle)); - } - return widget.height = widget.node.parentNode.offsetHeight; - } - - function addLineWidget(doc, handle, node, options) { - var widget = new LineWidget(doc, node, options); - var cm = doc.cm; - if (cm && widget.noHScroll) cm.display.alignWidgets = true; - changeLine(doc, handle, "widget", function(line) { - var widgets = line.widgets || (line.widgets = []); - if (widget.insertAt == null) widgets.push(widget); - else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); - widget.line = line; - if (cm && !lineIsHidden(doc, line)) { - var aboveVisible = heightAtLine(line) < doc.scrollTop; - updateLineHeight(line, line.height + widgetHeight(widget)); - if (aboveVisible) addToScrollPos(cm, null, widget.height); - cm.curOp.forceUpdate = true; - } - return true; - }); - return widget; - } - - // LINE DATA STRUCTURE - - // Line objects. These hold state related to a line, including - // highlighting info (the styles array). - var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) { - this.text = text; - attachMarkedSpans(this, markedSpans); - this.height = estimateHeight ? estimateHeight(this) : 1; - }; - eventMixin(Line); - Line.prototype.lineNo = function() { return lineNo(this); }; - - // Change the content (text, markers) of a line. Automatically - // invalidates cached information and tries to re-estimate the - // line's height. - function updateLine(line, text, markedSpans, estimateHeight) { - line.text = text; - if (line.stateAfter) line.stateAfter = null; - if (line.styles) line.styles = null; - if (line.order != null) line.order = null; - detachMarkedSpans(line); - attachMarkedSpans(line, markedSpans); - var estHeight = estimateHeight ? estimateHeight(line) : 1; - if (estHeight != line.height) updateLineHeight(line, estHeight); - } - - // Detach a line from the document tree and its markers. - function cleanUpLine(line) { - line.parent = null; - detachMarkedSpans(line); - } - - function extractLineClasses(type, output) { - if (type) for (;;) { - var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); - if (!lineClass) break; - type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); - var prop = lineClass[1] ? "bgClass" : "textClass"; - if (output[prop] == null) - output[prop] = lineClass[2]; - else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop])) - output[prop] += " " + lineClass[2]; - } - return type; - } - - function callBlankLine(mode, state) { - if (mode.blankLine) return mode.blankLine(state); - if (!mode.innerMode) return; - var inner = CodeMirror.innerMode(mode, state); - if (inner.mode.blankLine) return inner.mode.blankLine(inner.state); - } - - function readToken(mode, stream, state, inner) { - for (var i = 0; i < 10; i++) { - if (inner) inner[0] = CodeMirror.innerMode(mode, state).mode; - var style = mode.token(stream, state); - if (stream.pos > stream.start) return style; - } - throw new Error("Mode " + mode.name + " failed to advance stream."); - } - - // Utility for getTokenAt and getLineTokens - function takeToken(cm, pos, precise, asArray) { - function getObj(copy) { - return {start: stream.start, end: stream.pos, - string: stream.current(), - type: style || null, - state: copy ? copyState(doc.mode, state) : state}; - } - - var doc = cm.doc, mode = doc.mode, style; - pos = clipPos(doc, pos); - var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise); - var stream = new StringStream(line.text, cm.options.tabSize), tokens; - if (asArray) tokens = []; - while ((asArray || stream.pos < pos.ch) && !stream.eol()) { - stream.start = stream.pos; - style = readToken(mode, stream, state); - if (asArray) tokens.push(getObj(true)); - } - return asArray ? tokens : getObj(); - } - - // Run the given mode's parser over a line, calling f for each token. - function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) { - var flattenSpans = mode.flattenSpans; - if (flattenSpans == null) flattenSpans = cm.options.flattenSpans; - var curStart = 0, curStyle = null; - var stream = new StringStream(text, cm.options.tabSize), style; - var inner = cm.options.addModeClass && [null]; - if (text == "") extractLineClasses(callBlankLine(mode, state), lineClasses); - while (!stream.eol()) { - if (stream.pos > cm.options.maxHighlightLength) { - flattenSpans = false; - if (forceToEnd) processLine(cm, text, state, stream.pos); - stream.pos = text.length; - style = null; - } else { - style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses); - } - if (inner) { - var mName = inner[0].name; - if (mName) style = "m-" + (style ? mName + " " + style : mName); - } - if (!flattenSpans || curStyle != style) { - while (curStart < stream.start) { - curStart = Math.min(stream.start, curStart + 5000); - f(curStart, curStyle); - } - curStyle = style; - } - stream.start = stream.pos; - } - while (curStart < stream.pos) { - // Webkit seems to refuse to render text nodes longer than 57444 - // characters, and returns inaccurate measurements in nodes - // starting around 5000 chars. - var pos = Math.min(stream.pos, curStart + 5000); - f(pos, curStyle); - curStart = pos; - } - } - - // Compute a style array (an array starting with a mode generation - // -- for invalidation -- followed by pairs of end positions and - // style strings), which is used to highlight the tokens on the - // line. - function highlightLine(cm, line, state, forceToEnd) { - // A styles array always starts with a number identifying the - // mode/overlays that it is based on (for easy invalidation). - var st = [cm.state.modeGen], lineClasses = {}; - // Compute the base array of styles - runMode(cm, line.text, cm.doc.mode, state, function(end, style) { - st.push(end, style); - }, lineClasses, forceToEnd); - - // Run overlays, adjust style array. - for (var o = 0; o < cm.state.overlays.length; ++o) { - var overlay = cm.state.overlays[o], i = 1, at = 0; - runMode(cm, line.text, overlay.mode, true, function(end, style) { - var start = i; - // Ensure there's a token end at the current position, and that i points at it - while (at < end) { - var i_end = st[i]; - if (i_end > end) - st.splice(i, 1, end, st[i+1], i_end); - i += 2; - at = Math.min(end, i_end); - } - if (!style) return; - if (overlay.opaque) { - st.splice(start, i - start, end, "cm-overlay " + style); - i = start + 2; - } else { - for (; start < i; start += 2) { - var cur = st[start+1]; - st[start+1] = (cur ? cur + " " : "") + "cm-overlay " + style; - } - } - }, lineClasses); - } - - return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}; - } - - function getLineStyles(cm, line, updateFrontier) { - if (!line.styles || line.styles[0] != cm.state.modeGen) { - var state = getStateBefore(cm, lineNo(line)); - var result = highlightLine(cm, line, line.text.length > cm.options.maxHighlightLength ? copyState(cm.doc.mode, state) : state); - line.stateAfter = state; - line.styles = result.styles; - if (result.classes) line.styleClasses = result.classes; - else if (line.styleClasses) line.styleClasses = null; - if (updateFrontier === cm.doc.frontier) cm.doc.frontier++; - } - return line.styles; - } - - // Lightweight form of highlight -- proceed over this line and - // update state, but don't save a style array. Used for lines that - // aren't currently visible. - function processLine(cm, text, state, startAt) { - var mode = cm.doc.mode; - var stream = new StringStream(text, cm.options.tabSize); - stream.start = stream.pos = startAt || 0; - if (text == "") callBlankLine(mode, state); - while (!stream.eol()) { - readToken(mode, stream, state); - stream.start = stream.pos; - } - } - - // Convert a style as returned by a mode (either null, or a string - // containing one or more styles) to a CSS style. This is cached, - // and also looks for line-wide styles. - var styleToClassCache = {}, styleToClassCacheWithMode = {}; - function interpretTokenStyle(style, options) { - if (!style || /^\s*$/.test(style)) return null; - var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; - return cache[style] || - (cache[style] = style.replace(/\S+/g, "cm-$&")); - } - - // Render the DOM representation of the text of a line. Also builds - // up a 'line map', which points at the DOM nodes that represent - // specific stretches of text, and is used by the measuring code. - // The returned object contains the DOM node, this map, and - // information about line-wide styles that were set by the mode. - function buildLineContent(cm, lineView) { - // The padding-right forces the element to have a 'border', which - // is needed on Webkit to be able to get line-level bounding - // rectangles for it (in measureChar). - var content = elt("span", null, null, webkit ? "padding-right: .1px" : null); - var builder = {pre: elt("pre", [content], "CodeMirror-line"), content: content, - col: 0, pos: 0, cm: cm, - trailingSpace: false, - splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")}; - lineView.measure = {}; - - // Iterate over the logical lines that make up this visual line. - for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { - var line = i ? lineView.rest[i - 1] : lineView.line, order; - builder.pos = 0; - builder.addToken = buildToken; - // Optionally wire in some hacks into the token-rendering - // algorithm, to deal with browser quirks. - if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line))) - builder.addToken = buildTokenBadBidi(builder.addToken, order); - builder.map = []; - var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); - insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); - if (line.styleClasses) { - if (line.styleClasses.bgClass) - builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); - if (line.styleClasses.textClass) - builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); - } - - // Ensure at least a single node is present, for measuring. - if (builder.map.length == 0) - builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); - - // Store the map and a cache object for the current logical line - if (i == 0) { - lineView.measure.map = builder.map; - lineView.measure.cache = {}; - } else { - (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map); - (lineView.measure.caches || (lineView.measure.caches = [])).push({}); - } - } - - // See issue #2901 - if (webkit) { - var last = builder.content.lastChild - if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab"))) - builder.content.className = "cm-tab-wrap-hack"; - } - - signal(cm, "renderLine", cm, lineView.line, builder.pre); - if (builder.pre.className) - builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); - - return builder; - } - - function defaultSpecialCharPlaceholder(ch) { - var token = elt("span", "\u2022", "cm-invalidchar"); - token.title = "\\u" + ch.charCodeAt(0).toString(16); - token.setAttribute("aria-label", token.title); - return token; - } - - // Build up the DOM representation for a single token, and add it to - // the line map. Takes care to render special characters separately. - function buildToken(builder, text, style, startStyle, endStyle, title, css) { - if (!text) return; - var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text - var special = builder.cm.state.specialChars, mustWrap = false; - if (!special.test(text)) { - builder.col += text.length; - var content = document.createTextNode(displayText); - builder.map.push(builder.pos, builder.pos + text.length, content); - if (ie && ie_version < 9) mustWrap = true; - builder.pos += text.length; - } else { - var content = document.createDocumentFragment(), pos = 0; - while (true) { - special.lastIndex = pos; - var m = special.exec(text); - var skipped = m ? m.index - pos : text.length - pos; - if (skipped) { - var txt = document.createTextNode(displayText.slice(pos, pos + skipped)); - if (ie && ie_version < 9) content.appendChild(elt("span", [txt])); - else content.appendChild(txt); - builder.map.push(builder.pos, builder.pos + skipped, txt); - builder.col += skipped; - builder.pos += skipped; - } - if (!m) break; - pos += skipped + 1; - if (m[0] == "\t") { - var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; - var txt = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); - txt.setAttribute("role", "presentation"); - txt.setAttribute("cm-text", "\t"); - builder.col += tabWidth; - } else if (m[0] == "\r" || m[0] == "\n") { - var txt = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar")); - txt.setAttribute("cm-text", m[0]); - builder.col += 1; - } else { - var txt = builder.cm.options.specialCharPlaceholder(m[0]); - txt.setAttribute("cm-text", m[0]); - if (ie && ie_version < 9) content.appendChild(elt("span", [txt])); - else content.appendChild(txt); - builder.col += 1; - } - builder.map.push(builder.pos, builder.pos + 1, txt); - builder.pos++; - } - } - builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32 - if (style || startStyle || endStyle || mustWrap || css) { - var fullStyle = style || ""; - if (startStyle) fullStyle += startStyle; - if (endStyle) fullStyle += endStyle; - var token = elt("span", [content], fullStyle, css); - if (title) token.title = title; - return builder.content.appendChild(token); - } - builder.content.appendChild(content); - } - - function splitSpaces(text, trailingBefore) { - if (text.length > 1 && !/ /.test(text)) return text - var spaceBefore = trailingBefore, result = "" - for (var i = 0; i < text.length; i++) { - var ch = text.charAt(i) - if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32)) - ch = "\u00a0" - result += ch - spaceBefore = ch == " " - } - return result - } - - // Work around nonsense dimensions being reported for stretches of - // right-to-left text. - function buildTokenBadBidi(inner, order) { - return function(builder, text, style, startStyle, endStyle, title, css) { - style = style ? style + " cm-force-border" : "cm-force-border"; - var start = builder.pos, end = start + text.length; - for (;;) { - // Find the part that overlaps with the start of this text - for (var i = 0; i < order.length; i++) { - var part = order[i]; - if (part.to > start && part.from <= start) break; - } - if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title, css); - inner(builder, text.slice(0, part.to - start), style, startStyle, null, title, css); - startStyle = null; - text = text.slice(part.to - start); - start = part.to; - } - }; - } - - function buildCollapsedSpan(builder, size, marker, ignoreWidget) { - var widget = !ignoreWidget && marker.widgetNode; - if (widget) builder.map.push(builder.pos, builder.pos + size, widget); - if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) { - if (!widget) - widget = builder.content.appendChild(document.createElement("span")); - widget.setAttribute("cm-marker", marker.id); - } - if (widget) { - builder.cm.display.input.setUneditable(widget); - builder.content.appendChild(widget); - } - builder.pos += size; - builder.trailingSpace = false - } - - // Outputs a number of spans to make up a line, taking highlighting - // and marked text into account. - function insertLineContent(line, builder, styles) { - var spans = line.markedSpans, allText = line.text, at = 0; - if (!spans) { - for (var i = 1; i < styles.length; i+=2) - builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options)); - return; - } - - var len = allText.length, pos = 0, i = 1, text = "", style, css; - var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed; - for (;;) { - if (nextChange == pos) { // Update current marker set - spanStyle = spanEndStyle = spanStartStyle = title = css = ""; - collapsed = null; nextChange = Infinity; - var foundBookmarks = [], endStyles - for (var j = 0; j < spans.length; ++j) { - var sp = spans[j], m = sp.marker; - if (m.type == "bookmark" && sp.from == pos && m.widgetNode) { - foundBookmarks.push(m); - } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) { - if (sp.to != null && sp.to != pos && nextChange > sp.to) { - nextChange = sp.to; - spanEndStyle = ""; - } - if (m.className) spanStyle += " " + m.className; - if (m.css) css = (css ? css + ";" : "") + m.css; - if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle; - if (m.endStyle && sp.to == nextChange) (endStyles || (endStyles = [])).push(m.endStyle, sp.to) - if (m.title && !title) title = m.title; - if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) - collapsed = sp; - } else if (sp.from > pos && nextChange > sp.from) { - nextChange = sp.from; - } - } - if (endStyles) for (var j = 0; j < endStyles.length; j += 2) - if (endStyles[j + 1] == nextChange) spanEndStyle += " " + endStyles[j] - - if (!collapsed || collapsed.from == pos) for (var j = 0; j < foundBookmarks.length; ++j) - buildCollapsedSpan(builder, 0, foundBookmarks[j]); - if (collapsed && (collapsed.from || 0) == pos) { - buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, - collapsed.marker, collapsed.from == null); - if (collapsed.to == null) return; - if (collapsed.to == pos) collapsed = false; - } - } - if (pos >= len) break; - - var upto = Math.min(len, nextChange); - while (true) { - if (text) { - var end = pos + text.length; - if (!collapsed) { - var tokenText = end > upto ? text.slice(0, upto - pos) : text; - builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, - spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title, css); - } - if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;} - pos = end; - spanStartStyle = ""; - } - text = allText.slice(at, at = styles[i++]); - style = interpretTokenStyle(styles[i++], builder.cm.options); - } - } - } - - // DOCUMENT DATA STRUCTURE - - // By default, updates that start and end at the beginning of a line - // are treated specially, in order to make the association of line - // widgets and marker elements with the text behave more intuitive. - function isWholeLineUpdate(doc, change) { - return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && - (!doc.cm || doc.cm.options.wholeLineUpdateBefore); - } - - // Perform a change on the document data structure. - function updateDoc(doc, change, markedSpans, estimateHeight) { - function spansFor(n) {return markedSpans ? markedSpans[n] : null;} - function update(line, text, spans) { - updateLine(line, text, spans, estimateHeight); - signalLater(line, "change", line, change); - } - function linesFor(start, end) { - for (var i = start, result = []; i < end; ++i) - result.push(new Line(text[i], spansFor(i), estimateHeight)); - return result; - } - - var from = change.from, to = change.to, text = change.text; - var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); - var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; - - // Adjust the line structure - if (change.full) { - doc.insert(0, linesFor(0, text.length)); - doc.remove(text.length, doc.size - text.length); - } else if (isWholeLineUpdate(doc, change)) { - // This is a whole-line replace. Treated specially to make - // sure line objects move the way they are supposed to. - var added = linesFor(0, text.length - 1); - update(lastLine, lastLine.text, lastSpans); - if (nlines) doc.remove(from.line, nlines); - if (added.length) doc.insert(from.line, added); - } else if (firstLine == lastLine) { - if (text.length == 1) { - update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); - } else { - var added = linesFor(1, text.length - 1); - added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); - update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); - doc.insert(from.line + 1, added); - } - } else if (text.length == 1) { - update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); - doc.remove(from.line + 1, nlines); - } else { - update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); - update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); - var added = linesFor(1, text.length - 1); - if (nlines > 1) doc.remove(from.line + 1, nlines - 1); - doc.insert(from.line + 1, added); - } - - signalLater(doc, "change", doc, change); - } - - // The document is represented as a BTree consisting of leaves, with - // chunk of lines in them, and branches, with up to ten leaves or - // other branch nodes below them. The top node is always a branch - // node, and is the document object itself (meaning it has - // additional methods and properties). - // - // All nodes have parent links. The tree is used both to go from - // line numbers to line objects, and to go from objects to numbers. - // It also indexes by height, and is used to convert between height - // and line object, and to find the total height of the document. - // - // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html - - function LeafChunk(lines) { - this.lines = lines; - this.parent = null; - for (var i = 0, height = 0; i < lines.length; ++i) { - lines[i].parent = this; - height += lines[i].height; - } - this.height = height; - } - - LeafChunk.prototype = { - chunkSize: function() { return this.lines.length; }, - // Remove the n lines at offset 'at'. - removeInner: function(at, n) { - for (var i = at, e = at + n; i < e; ++i) { - var line = this.lines[i]; - this.height -= line.height; - cleanUpLine(line); - signalLater(line, "delete"); - } - this.lines.splice(at, n); - }, - // Helper used to collapse a small branch into a single leaf. - collapse: function(lines) { - lines.push.apply(lines, this.lines); - }, - // Insert the given array of lines at offset 'at', count them as - // having the given height. - insertInner: function(at, lines, height) { - this.height += height; - this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); - for (var i = 0; i < lines.length; ++i) lines[i].parent = this; - }, - // Used to iterate over a part of the tree. - iterN: function(at, n, op) { - for (var e = at + n; at < e; ++at) - if (op(this.lines[at])) return true; - } - }; - - function BranchChunk(children) { - this.children = children; - var size = 0, height = 0; - for (var i = 0; i < children.length; ++i) { - var ch = children[i]; - size += ch.chunkSize(); height += ch.height; - ch.parent = this; - } - this.size = size; - this.height = height; - this.parent = null; - } - - BranchChunk.prototype = { - chunkSize: function() { return this.size; }, - removeInner: function(at, n) { - this.size -= n; - for (var i = 0; i < this.children.length; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at < sz) { - var rm = Math.min(n, sz - at), oldHeight = child.height; - child.removeInner(at, rm); - this.height -= oldHeight - child.height; - if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } - if ((n -= rm) == 0) break; - at = 0; - } else at -= sz; - } - // If the result is smaller than 25 lines, ensure that it is a - // single leaf node. - if (this.size - n < 25 && - (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { - var lines = []; - this.collapse(lines); - this.children = [new LeafChunk(lines)]; - this.children[0].parent = this; - } - }, - collapse: function(lines) { - for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines); - }, - insertInner: function(at, lines, height) { - this.size += lines.length; - this.height += height; - for (var i = 0; i < this.children.length; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at <= sz) { - child.insertInner(at, lines, height); - if (child.lines && child.lines.length > 50) { - // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced. - // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest. - var remaining = child.lines.length % 25 + 25 - for (var pos = remaining; pos < child.lines.length;) { - var leaf = new LeafChunk(child.lines.slice(pos, pos += 25)); - child.height -= leaf.height; - this.children.splice(++i, 0, leaf); - leaf.parent = this; - } - child.lines = child.lines.slice(0, remaining); - this.maybeSpill(); - } - break; - } - at -= sz; - } - }, - // When a node has grown, check whether it should be split. - maybeSpill: function() { - if (this.children.length <= 10) return; - var me = this; - do { - var spilled = me.children.splice(me.children.length - 5, 5); - var sibling = new BranchChunk(spilled); - if (!me.parent) { // Become the parent node - var copy = new BranchChunk(me.children); - copy.parent = me; - me.children = [copy, sibling]; - me = copy; - } else { - me.size -= sibling.size; - me.height -= sibling.height; - var myIndex = indexOf(me.parent.children, me); - me.parent.children.splice(myIndex + 1, 0, sibling); - } - sibling.parent = me.parent; - } while (me.children.length > 10); - me.parent.maybeSpill(); - }, - iterN: function(at, n, op) { - for (var i = 0; i < this.children.length; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at < sz) { - var used = Math.min(n, sz - at); - if (child.iterN(at, used, op)) return true; - if ((n -= used) == 0) break; - at = 0; - } else at -= sz; - } - } - }; - - var nextDocId = 0; - var Doc = CodeMirror.Doc = function(text, mode, firstLine, lineSep) { - if (!(this instanceof Doc)) return new Doc(text, mode, firstLine, lineSep); - if (firstLine == null) firstLine = 0; - - BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); - this.first = firstLine; - this.scrollTop = this.scrollLeft = 0; - this.cantEdit = false; - this.cleanGeneration = 1; - this.frontier = firstLine; - var start = Pos(firstLine, 0); - this.sel = simpleSelection(start); - this.history = new History(null); - this.id = ++nextDocId; - this.modeOption = mode; - this.lineSep = lineSep; - this.extend = false; - - if (typeof text == "string") text = this.splitLines(text); - updateDoc(this, {from: start, to: start, text: text}); - setSelection(this, simpleSelection(start), sel_dontScroll); - }; - - Doc.prototype = createObj(BranchChunk.prototype, { - constructor: Doc, - // Iterate over the document. Supports two forms -- with only one - // argument, it calls that for each line in the document. With - // three, it iterates over the range given by the first two (with - // the second being non-inclusive). - iter: function(from, to, op) { - if (op) this.iterN(from - this.first, to - from, op); - else this.iterN(this.first, this.first + this.size, from); - }, - - // Non-public interface for adding and removing lines. - insert: function(at, lines) { - var height = 0; - for (var i = 0; i < lines.length; ++i) height += lines[i].height; - this.insertInner(at - this.first, lines, height); - }, - remove: function(at, n) { this.removeInner(at - this.first, n); }, - - // From here, the methods are part of the public interface. Most - // are also available from CodeMirror (editor) instances. - - getValue: function(lineSep) { - var lines = getLines(this, this.first, this.first + this.size); - if (lineSep === false) return lines; - return lines.join(lineSep || this.lineSeparator()); - }, - setValue: docMethodOp(function(code) { - var top = Pos(this.first, 0), last = this.first + this.size - 1; - makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), - text: this.splitLines(code), origin: "setValue", full: true}, true); - setSelection(this, simpleSelection(top)); - }), - replaceRange: function(code, from, to, origin) { - from = clipPos(this, from); - to = to ? clipPos(this, to) : from; - replaceRange(this, code, from, to, origin); - }, - getRange: function(from, to, lineSep) { - var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); - if (lineSep === false) return lines; - return lines.join(lineSep || this.lineSeparator()); - }, - - getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;}, - - getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);}, - getLineNumber: function(line) {return lineNo(line);}, - - getLineHandleVisualStart: function(line) { - if (typeof line == "number") line = getLine(this, line); - return visualLine(line); - }, - - lineCount: function() {return this.size;}, - firstLine: function() {return this.first;}, - lastLine: function() {return this.first + this.size - 1;}, - - clipPos: function(pos) {return clipPos(this, pos);}, - - getCursor: function(start) { - var range = this.sel.primary(), pos; - if (start == null || start == "head") pos = range.head; - else if (start == "anchor") pos = range.anchor; - else if (start == "end" || start == "to" || start === false) pos = range.to(); - else pos = range.from(); - return pos; - }, - listSelections: function() { return this.sel.ranges; }, - somethingSelected: function() {return this.sel.somethingSelected();}, - - setCursor: docMethodOp(function(line, ch, options) { - setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); - }), - setSelection: docMethodOp(function(anchor, head, options) { - setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); - }), - extendSelection: docMethodOp(function(head, other, options) { - extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); - }), - extendSelections: docMethodOp(function(heads, options) { - extendSelections(this, clipPosArray(this, heads), options); - }), - extendSelectionsBy: docMethodOp(function(f, options) { - var heads = map(this.sel.ranges, f); - extendSelections(this, clipPosArray(this, heads), options); - }), - setSelections: docMethodOp(function(ranges, primary, options) { - if (!ranges.length) return; - for (var i = 0, out = []; i < ranges.length; i++) - out[i] = new Range(clipPos(this, ranges[i].anchor), - clipPos(this, ranges[i].head)); - if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex); - setSelection(this, normalizeSelection(out, primary), options); - }), - addSelection: docMethodOp(function(anchor, head, options) { - var ranges = this.sel.ranges.slice(0); - ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); - setSelection(this, normalizeSelection(ranges, ranges.length - 1), options); - }), - - getSelection: function(lineSep) { - var ranges = this.sel.ranges, lines; - for (var i = 0; i < ranges.length; i++) { - var sel = getBetween(this, ranges[i].from(), ranges[i].to()); - lines = lines ? lines.concat(sel) : sel; - } - if (lineSep === false) return lines; - else return lines.join(lineSep || this.lineSeparator()); - }, - getSelections: function(lineSep) { - var parts = [], ranges = this.sel.ranges; - for (var i = 0; i < ranges.length; i++) { - var sel = getBetween(this, ranges[i].from(), ranges[i].to()); - if (lineSep !== false) sel = sel.join(lineSep || this.lineSeparator()); - parts[i] = sel; - } - return parts; - }, - replaceSelection: function(code, collapse, origin) { - var dup = []; - for (var i = 0; i < this.sel.ranges.length; i++) - dup[i] = code; - this.replaceSelections(dup, collapse, origin || "+input"); - }, - replaceSelections: docMethodOp(function(code, collapse, origin) { - var changes = [], sel = this.sel; - for (var i = 0; i < sel.ranges.length; i++) { - var range = sel.ranges[i]; - changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin}; - } - var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); - for (var i = changes.length - 1; i >= 0; i--) - makeChange(this, changes[i]); - if (newSel) setSelectionReplaceHistory(this, newSel); - else if (this.cm) ensureCursorVisible(this.cm); - }), - undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}), - redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}), - undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}), - redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}), - - setExtending: function(val) {this.extend = val;}, - getExtending: function() {return this.extend;}, - - historySize: function() { - var hist = this.history, done = 0, undone = 0; - for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done; - for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone; - return {undo: done, redo: undone}; - }, - clearHistory: function() {this.history = new History(this.history.maxGeneration);}, - - markClean: function() { - this.cleanGeneration = this.changeGeneration(true); - }, - changeGeneration: function(forceSplit) { - if (forceSplit) - this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; - return this.history.generation; - }, - isClean: function (gen) { - return this.history.generation == (gen || this.cleanGeneration); - }, - - getHistory: function() { - return {done: copyHistoryArray(this.history.done), - undone: copyHistoryArray(this.history.undone)}; - }, - setHistory: function(histData) { - var hist = this.history = new History(this.history.maxGeneration); - hist.done = copyHistoryArray(histData.done.slice(0), null, true); - hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); - }, - - addLineClass: docMethodOp(function(handle, where, cls) { - return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) { - var prop = where == "text" ? "textClass" - : where == "background" ? "bgClass" - : where == "gutter" ? "gutterClass" : "wrapClass"; - if (!line[prop]) line[prop] = cls; - else if (classTest(cls).test(line[prop])) return false; - else line[prop] += " " + cls; - return true; - }); - }), - removeLineClass: docMethodOp(function(handle, where, cls) { - return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) { - var prop = where == "text" ? "textClass" - : where == "background" ? "bgClass" - : where == "gutter" ? "gutterClass" : "wrapClass"; - var cur = line[prop]; - if (!cur) return false; - else if (cls == null) line[prop] = null; - else { - var found = cur.match(classTest(cls)); - if (!found) return false; - var end = found.index + found[0].length; - line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; - } - return true; - }); - }), - - addLineWidget: docMethodOp(function(handle, node, options) { - return addLineWidget(this, handle, node, options); - }), - removeLineWidget: function(widget) { widget.clear(); }, - - markText: function(from, to, options) { - return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range"); - }, - setBookmark: function(pos, options) { - var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), - insertLeft: options && options.insertLeft, - clearWhenEmpty: false, shared: options && options.shared, - handleMouseEvents: options && options.handleMouseEvents}; - pos = clipPos(this, pos); - return markText(this, pos, pos, realOpts, "bookmark"); - }, - findMarksAt: function(pos) { - pos = clipPos(this, pos); - var markers = [], spans = getLine(this, pos.line).markedSpans; - if (spans) for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - if ((span.from == null || span.from <= pos.ch) && - (span.to == null || span.to >= pos.ch)) - markers.push(span.marker.parent || span.marker); - } - return markers; - }, - findMarks: function(from, to, filter) { - from = clipPos(this, from); to = clipPos(this, to); - var found = [], lineNo = from.line; - this.iter(from.line, to.line + 1, function(line) { - var spans = line.markedSpans; - if (spans) for (var i = 0; i < spans.length; i++) { - var span = spans[i]; - if (!(span.to != null && lineNo == from.line && from.ch >= span.to || - span.from == null && lineNo != from.line || - span.from != null && lineNo == to.line && span.from >= to.ch) && - (!filter || filter(span.marker))) - found.push(span.marker.parent || span.marker); - } - ++lineNo; - }); - return found; - }, - getAllMarks: function() { - var markers = []; - this.iter(function(line) { - var sps = line.markedSpans; - if (sps) for (var i = 0; i < sps.length; ++i) - if (sps[i].from != null) markers.push(sps[i].marker); - }); - return markers; - }, - - posFromIndex: function(off) { - var ch, lineNo = this.first, sepSize = this.lineSeparator().length; - this.iter(function(line) { - var sz = line.text.length + sepSize; - if (sz > off) { ch = off; return true; } - off -= sz; - ++lineNo; - }); - return clipPos(this, Pos(lineNo, ch)); - }, - indexFromPos: function (coords) { - coords = clipPos(this, coords); - var index = coords.ch; - if (coords.line < this.first || coords.ch < 0) return 0; - var sepSize = this.lineSeparator().length; - this.iter(this.first, coords.line, function (line) { - index += line.text.length + sepSize; - }); - return index; - }, - - copy: function(copyHistory) { - var doc = new Doc(getLines(this, this.first, this.first + this.size), - this.modeOption, this.first, this.lineSep); - doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; - doc.sel = this.sel; - doc.extend = false; - if (copyHistory) { - doc.history.undoDepth = this.history.undoDepth; - doc.setHistory(this.getHistory()); - } - return doc; - }, - - linkedDoc: function(options) { - if (!options) options = {}; - var from = this.first, to = this.first + this.size; - if (options.from != null && options.from > from) from = options.from; - if (options.to != null && options.to < to) to = options.to; - var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep); - if (options.sharedHist) copy.history = this.history; - (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); - copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; - copySharedMarkers(copy, findSharedMarkers(this)); - return copy; - }, - unlinkDoc: function(other) { - if (other instanceof CodeMirror) other = other.doc; - if (this.linked) for (var i = 0; i < this.linked.length; ++i) { - var link = this.linked[i]; - if (link.doc != other) continue; - this.linked.splice(i, 1); - other.unlinkDoc(this); - detachSharedMarkers(findSharedMarkers(this)); - break; - } - // If the histories were shared, split them again - if (other.history == this.history) { - var splitIds = [other.id]; - linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true); - other.history = new History(null); - other.history.done = copyHistoryArray(this.history.done, splitIds); - other.history.undone = copyHistoryArray(this.history.undone, splitIds); - } - }, - iterLinkedDocs: function(f) {linkedDocs(this, f);}, - - getMode: function() {return this.mode;}, - getEditor: function() {return this.cm;}, - - splitLines: function(str) { - if (this.lineSep) return str.split(this.lineSep); - return splitLinesAuto(str); - }, - lineSeparator: function() { return this.lineSep || "\n"; } - }); - - // Public alias. - Doc.prototype.eachLine = Doc.prototype.iter; - - // Set up methods on CodeMirror's prototype to redirect to the editor's document. - var dontDelegate = "iter insert remove copy getEditor constructor".split(" "); - for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) - CodeMirror.prototype[prop] = (function(method) { - return function() {return method.apply(this.doc, arguments);}; - })(Doc.prototype[prop]); - - eventMixin(Doc); - - // Call f for all linked documents. - function linkedDocs(doc, f, sharedHistOnly) { - function propagate(doc, skip, sharedHist) { - if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) { - var rel = doc.linked[i]; - if (rel.doc == skip) continue; - var shared = sharedHist && rel.sharedHist; - if (sharedHistOnly && !shared) continue; - f(rel.doc, shared); - propagate(rel.doc, doc, shared); - } - } - propagate(doc, null, true); - } - - // Attach a document to an editor. - function attachDoc(cm, doc) { - if (doc.cm) throw new Error("This document is already in use."); - cm.doc = doc; - doc.cm = cm; - estimateLineHeights(cm); - loadMode(cm); - if (!cm.options.lineWrapping) findMaxLine(cm); - cm.options.mode = doc.modeOption; - regChange(cm); - } - - // LINE UTILITIES - - // Find the line object corresponding to the given line number. - function getLine(doc, n) { - n -= doc.first; - if (n < 0 || n >= doc.size) throw new Error("There is no line " + (n + doc.first) + " in the document."); - for (var chunk = doc; !chunk.lines;) { - for (var i = 0;; ++i) { - var child = chunk.children[i], sz = child.chunkSize(); - if (n < sz) { chunk = child; break; } - n -= sz; - } - } - return chunk.lines[n]; - } - - // Get the part of a document between two positions, as an array of - // strings. - function getBetween(doc, start, end) { - var out = [], n = start.line; - doc.iter(start.line, end.line + 1, function(line) { - var text = line.text; - if (n == end.line) text = text.slice(0, end.ch); - if (n == start.line) text = text.slice(start.ch); - out.push(text); - ++n; - }); - return out; - } - // Get the lines between from and to, as array of strings. - function getLines(doc, from, to) { - var out = []; - doc.iter(from, to, function(line) { out.push(line.text); }); - return out; - } - - // Update the height of a line, propagating the height change - // upwards to parent nodes. - function updateLineHeight(line, height) { - var diff = height - line.height; - if (diff) for (var n = line; n; n = n.parent) n.height += diff; - } - - // Given a line object, find its line number by walking up through - // its parent links. - function lineNo(line) { - if (line.parent == null) return null; - var cur = line.parent, no = indexOf(cur.lines, line); - for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { - for (var i = 0;; ++i) { - if (chunk.children[i] == cur) break; - no += chunk.children[i].chunkSize(); - } - } - return no + cur.first; - } - - // Find the line at the given vertical position, using the height - // information in the document tree. - function lineAtHeight(chunk, h) { - var n = chunk.first; - outer: do { - for (var i = 0; i < chunk.children.length; ++i) { - var child = chunk.children[i], ch = child.height; - if (h < ch) { chunk = child; continue outer; } - h -= ch; - n += child.chunkSize(); - } - return n; - } while (!chunk.lines); - for (var i = 0; i < chunk.lines.length; ++i) { - var line = chunk.lines[i], lh = line.height; - if (h < lh) break; - h -= lh; - } - return n + i; - } - - - // Find the height above the given line. - function heightAtLine(lineObj) { - lineObj = visualLine(lineObj); - - var h = 0, chunk = lineObj.parent; - for (var i = 0; i < chunk.lines.length; ++i) { - var line = chunk.lines[i]; - if (line == lineObj) break; - else h += line.height; - } - for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { - for (var i = 0; i < p.children.length; ++i) { - var cur = p.children[i]; - if (cur == chunk) break; - else h += cur.height; - } - } - return h; - } - - // Get the bidi ordering for the given line (and cache it). Returns - // false for lines that are fully left-to-right, and an array of - // BidiSpan objects otherwise. - function getOrder(line) { - var order = line.order; - if (order == null) order = line.order = bidiOrdering(line.text); - return order; - } - - // HISTORY - - function History(startGen) { - // Arrays of change events and selections. Doing something adds an - // event to done and clears undo. Undoing moves events from done - // to undone, redoing moves them in the other direction. - this.done = []; this.undone = []; - this.undoDepth = Infinity; - // Used to track when changes can be merged into a single undo - // event - this.lastModTime = this.lastSelTime = 0; - this.lastOp = this.lastSelOp = null; - this.lastOrigin = this.lastSelOrigin = null; - // Used by the isClean() method - this.generation = this.maxGeneration = startGen || 1; - } - - // Create a history change event from an updateDoc-style change - // object. - function historyChangeFromChange(doc, change) { - var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; - attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); - linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true); - return histChange; - } - - // Pop all selection events off the end of a history array. Stop at - // a change event. - function clearSelectionEvents(array) { - while (array.length) { - var last = lst(array); - if (last.ranges) array.pop(); - else break; - } - } - - // Find the top change event in the history. Pop off selection - // events that are in the way. - function lastChangeEvent(hist, force) { - if (force) { - clearSelectionEvents(hist.done); - return lst(hist.done); - } else if (hist.done.length && !lst(hist.done).ranges) { - return lst(hist.done); - } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { - hist.done.pop(); - return lst(hist.done); - } - } - - // Register a change in the history. Merges changes that are within - // a single operation, or are close together with an origin that - // allows merging (starting with "+") into a single event. - function addChangeToHistory(doc, change, selAfter, opId) { - var hist = doc.history; - hist.undone.length = 0; - var time = +new Date, cur; - - if ((hist.lastOp == opId || - hist.lastOrigin == change.origin && change.origin && - ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) || - change.origin.charAt(0) == "*")) && - (cur = lastChangeEvent(hist, hist.lastOp == opId))) { - // Merge this change into the last event - var last = lst(cur.changes); - if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { - // Optimized case for simple insertion -- don't want to add - // new changesets for every character typed - last.to = changeEnd(change); - } else { - // Add new sub-event - cur.changes.push(historyChangeFromChange(doc, change)); - } - } else { - // Can not be merged, start a new event. - var before = lst(hist.done); - if (!before || !before.ranges) - pushSelectionToHistory(doc.sel, hist.done); - cur = {changes: [historyChangeFromChange(doc, change)], - generation: hist.generation}; - hist.done.push(cur); - while (hist.done.length > hist.undoDepth) { - hist.done.shift(); - if (!hist.done[0].ranges) hist.done.shift(); - } - } - hist.done.push(selAfter); - hist.generation = ++hist.maxGeneration; - hist.lastModTime = hist.lastSelTime = time; - hist.lastOp = hist.lastSelOp = opId; - hist.lastOrigin = hist.lastSelOrigin = change.origin; - - if (!last) signal(doc, "historyAdded"); - } - - function selectionEventCanBeMerged(doc, origin, prev, sel) { - var ch = origin.charAt(0); - return ch == "*" || - ch == "+" && - prev.ranges.length == sel.ranges.length && - prev.somethingSelected() == sel.somethingSelected() && - new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500); - } - - // Called whenever the selection changes, sets the new selection as - // the pending selection in the history, and pushes the old pending - // selection into the 'done' array when it was significantly - // different (in number of selected ranges, emptiness, or time). - function addSelectionToHistory(doc, sel, opId, options) { - var hist = doc.history, origin = options && options.origin; - - // A new event is started when the previous origin does not match - // the current, or the origins don't allow matching. Origins - // starting with * are always merged, those starting with + are - // merged when similar and close together in time. - if (opId == hist.lastSelOp || - (origin && hist.lastSelOrigin == origin && - (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || - selectionEventCanBeMerged(doc, origin, lst(hist.done), sel)))) - hist.done[hist.done.length - 1] = sel; - else - pushSelectionToHistory(sel, hist.done); - - hist.lastSelTime = +new Date; - hist.lastSelOrigin = origin; - hist.lastSelOp = opId; - if (options && options.clearRedo !== false) - clearSelectionEvents(hist.undone); - } - - function pushSelectionToHistory(sel, dest) { - var top = lst(dest); - if (!(top && top.ranges && top.equals(sel))) - dest.push(sel); - } - - // Used to store marked span information in the history. - function attachLocalSpans(doc, change, from, to) { - var existing = change["spans_" + doc.id], n = 0; - doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) { - if (line.markedSpans) - (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; - ++n; - }); - } - - // When un/re-doing restores text containing marked spans, those - // that have been explicitly cleared should not be restored. - function removeClearedSpans(spans) { - if (!spans) return null; - for (var i = 0, out; i < spans.length; ++i) { - if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); } - else if (out) out.push(spans[i]); - } - return !out ? spans : out.length ? out : null; - } - - // Retrieve and filter the old marked spans stored in a change event. - function getOldSpans(doc, change) { - var found = change["spans_" + doc.id]; - if (!found) return null; - for (var i = 0, nw = []; i < change.text.length; ++i) - nw.push(removeClearedSpans(found[i])); - return nw; - } - - // Used both to provide a JSON-safe object in .getHistory, and, when - // detaching a document, to split the history in two - function copyHistoryArray(events, newGroup, instantiateSel) { - for (var i = 0, copy = []; i < events.length; ++i) { - var event = events[i]; - if (event.ranges) { - copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); - continue; - } - var changes = event.changes, newChanges = []; - copy.push({changes: newChanges}); - for (var j = 0; j < changes.length; ++j) { - var change = changes[j], m; - newChanges.push({from: change.from, to: change.to, text: change.text}); - if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) { - if (indexOf(newGroup, Number(m[1])) > -1) { - lst(newChanges)[prop] = change[prop]; - delete change[prop]; - } - } - } - } - return copy; - } - - // Rebasing/resetting history to deal with externally-sourced changes - - function rebaseHistSelSingle(pos, from, to, diff) { - if (to < pos.line) { - pos.line += diff; - } else if (from < pos.line) { - pos.line = from; - pos.ch = 0; - } - } - - // Tries to rebase an array of history events given a change in the - // document. If the change touches the same lines as the event, the - // event, and everything 'behind' it, is discarded. If the change is - // before the event, the event's positions are updated. Uses a - // copy-on-write scheme for the positions, to avoid having to - // reallocate them all on every rebase, but also avoid problems with - // shared position objects being unsafely updated. - function rebaseHistArray(array, from, to, diff) { - for (var i = 0; i < array.length; ++i) { - var sub = array[i], ok = true; - if (sub.ranges) { - if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; } - for (var j = 0; j < sub.ranges.length; j++) { - rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); - rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); - } - continue; - } - for (var j = 0; j < sub.changes.length; ++j) { - var cur = sub.changes[j]; - if (to < cur.from.line) { - cur.from = Pos(cur.from.line + diff, cur.from.ch); - cur.to = Pos(cur.to.line + diff, cur.to.ch); - } else if (from <= cur.to.line) { - ok = false; - break; - } - } - if (!ok) { - array.splice(0, i + 1); - i = 0; - } - } - } - - function rebaseHist(hist, change) { - var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; - rebaseHistArray(hist.done, from, to, diff); - rebaseHistArray(hist.undone, from, to, diff); - } - - // EVENT UTILITIES - - // Due to the fact that we still support jurassic IE versions, some - // compatibility wrappers are needed. - - var e_preventDefault = CodeMirror.e_preventDefault = function(e) { - if (e.preventDefault) e.preventDefault(); - else e.returnValue = false; - }; - var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) { - if (e.stopPropagation) e.stopPropagation(); - else e.cancelBubble = true; - }; - function e_defaultPrevented(e) { - return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false; - } - var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);}; - - function e_target(e) {return e.target || e.srcElement;} - function e_button(e) { - var b = e.which; - if (b == null) { - if (e.button & 1) b = 1; - else if (e.button & 2) b = 3; - else if (e.button & 4) b = 2; - } - if (mac && e.ctrlKey && b == 1) b = 3; - return b; - } - - // EVENT HANDLING - - // Lightweight event framework. on/off also work on DOM nodes, - // registering native DOM handlers. - - var on = CodeMirror.on = function(emitter, type, f) { - if (emitter.addEventListener) - emitter.addEventListener(type, f, false); - else if (emitter.attachEvent) - emitter.attachEvent("on" + type, f); - else { - var map = emitter._handlers || (emitter._handlers = {}); - var arr = map[type] || (map[type] = []); - arr.push(f); - } - }; - - var noHandlers = [] - function getHandlers(emitter, type, copy) { - var arr = emitter._handlers && emitter._handlers[type] - if (copy) return arr && arr.length > 0 ? arr.slice() : noHandlers - else return arr || noHandlers - } - - var off = CodeMirror.off = function(emitter, type, f) { - if (emitter.removeEventListener) - emitter.removeEventListener(type, f, false); - else if (emitter.detachEvent) - emitter.detachEvent("on" + type, f); - else { - var handlers = getHandlers(emitter, type, false) - for (var i = 0; i < handlers.length; ++i) - if (handlers[i] == f) { handlers.splice(i, 1); break; } - } - }; - - var signal = CodeMirror.signal = function(emitter, type /*, values...*/) { - var handlers = getHandlers(emitter, type, true) - if (!handlers.length) return; - var args = Array.prototype.slice.call(arguments, 2); - for (var i = 0; i < handlers.length; ++i) handlers[i].apply(null, args); - }; - - var orphanDelayedCallbacks = null; - - // Often, we want to signal events at a point where we are in the - // middle of some work, but don't want the handler to start calling - // other methods on the editor, which might be in an inconsistent - // state or simply not expect any other events to happen. - // signalLater looks whether there are any handlers, and schedules - // them to be executed when the last operation ends, or, if no - // operation is active, when a timeout fires. - function signalLater(emitter, type /*, values...*/) { - var arr = getHandlers(emitter, type, false) - if (!arr.length) return; - var args = Array.prototype.slice.call(arguments, 2), list; - if (operationGroup) { - list = operationGroup.delayedCallbacks; - } else if (orphanDelayedCallbacks) { - list = orphanDelayedCallbacks; - } else { - list = orphanDelayedCallbacks = []; - setTimeout(fireOrphanDelayed, 0); - } - function bnd(f) {return function(){f.apply(null, args);};}; - for (var i = 0; i < arr.length; ++i) - list.push(bnd(arr[i])); - } - - function fireOrphanDelayed() { - var delayed = orphanDelayedCallbacks; - orphanDelayedCallbacks = null; - for (var i = 0; i < delayed.length; ++i) delayed[i](); - } - - // The DOM events that CodeMirror handles can be overridden by - // registering a (non-DOM) handler on the editor for the event name, - // and preventDefault-ing the event in that handler. - function signalDOMEvent(cm, e, override) { - if (typeof e == "string") - e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; - signal(cm, override || e.type, cm, e); - return e_defaultPrevented(e) || e.codemirrorIgnore; - } - - function signalCursorActivity(cm) { - var arr = cm._handlers && cm._handlers.cursorActivity; - if (!arr) return; - var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); - for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1) - set.push(arr[i]); - } - - function hasHandler(emitter, type) { - return getHandlers(emitter, type).length > 0 - } - - // Add on and off methods to a constructor's prototype, to make - // registering events on such objects more convenient. - function eventMixin(ctor) { - ctor.prototype.on = function(type, f) {on(this, type, f);}; - ctor.prototype.off = function(type, f) {off(this, type, f);}; - } - - // MISC UTILITIES - - // Number of pixels added to scroller and sizer to hide scrollbar - var scrollerGap = 30; - - // Returned or thrown by various protocols to signal 'I'm not - // handling this'. - var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}}; - - // Reused option objects for setSelection & friends - var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"}; - - function Delayed() {this.id = null;} - Delayed.prototype.set = function(ms, f) { - clearTimeout(this.id); - this.id = setTimeout(f, ms); - }; - - // Counts the column offset in a string, taking tabs into account. - // Used mostly to find indentation. - var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) { - if (end == null) { - end = string.search(/[^\s\u00a0]/); - if (end == -1) end = string.length; - } - for (var i = startIndex || 0, n = startValue || 0;;) { - var nextTab = string.indexOf("\t", i); - if (nextTab < 0 || nextTab >= end) - return n + (end - i); - n += nextTab - i; - n += tabSize - (n % tabSize); - i = nextTab + 1; - } - }; - - // The inverse of countColumn -- find the offset that corresponds to - // a particular column. - var findColumn = CodeMirror.findColumn = function(string, goal, tabSize) { - for (var pos = 0, col = 0;;) { - var nextTab = string.indexOf("\t", pos); - if (nextTab == -1) nextTab = string.length; - var skipped = nextTab - pos; - if (nextTab == string.length || col + skipped >= goal) - return pos + Math.min(skipped, goal - col); - col += nextTab - pos; - col += tabSize - (col % tabSize); - pos = nextTab + 1; - if (col >= goal) return pos; - } - } - - var spaceStrs = [""]; - function spaceStr(n) { - while (spaceStrs.length <= n) - spaceStrs.push(lst(spaceStrs) + " "); - return spaceStrs[n]; - } - - function lst(arr) { return arr[arr.length-1]; } - - var selectInput = function(node) { node.select(); }; - if (ios) // Mobile Safari apparently has a bug where select() is broken. - selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; - else if (ie) // Suppress mysterious IE10 errors - selectInput = function(node) { try { node.select(); } catch(_e) {} }; - - function indexOf(array, elt) { - for (var i = 0; i < array.length; ++i) - if (array[i] == elt) return i; - return -1; - } - function map(array, f) { - var out = []; - for (var i = 0; i < array.length; i++) out[i] = f(array[i], i); - return out; - } - - function insertSorted(array, value, score) { - var pos = 0, priority = score(value) - while (pos < array.length && score(array[pos]) <= priority) pos++ - array.splice(pos, 0, value) - } - - function nothing() {} - - function createObj(base, props) { - var inst; - if (Object.create) { - inst = Object.create(base); - } else { - nothing.prototype = base; - inst = new nothing(); - } - if (props) copyObj(props, inst); - return inst; - }; - - function copyObj(obj, target, overwrite) { - if (!target) target = {}; - for (var prop in obj) - if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) - target[prop] = obj[prop]; - return target; - } - - function bind(f) { - var args = Array.prototype.slice.call(arguments, 1); - return function(){return f.apply(null, args);}; - } - - var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; - var isWordCharBasic = CodeMirror.isWordChar = function(ch) { - return /\w/.test(ch) || ch > "\x80" && - (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)); - }; - function isWordChar(ch, helper) { - if (!helper) return isWordCharBasic(ch); - if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) return true; - return helper.test(ch); - } - - function isEmpty(obj) { - for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false; - return true; - } - - // Extending unicode characters. A series of a non-extending char + - // any number of extending chars is treated as a single unit as far - // as editing and measuring is concerned. This is not fully correct, - // since some scripts/fonts/browsers also treat other configurations - // of code points as a group. - var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/; - function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); } - - // DOM UTILITIES - - function elt(tag, content, className, style) { - var e = document.createElement(tag); - if (className) e.className = className; - if (style) e.style.cssText = style; - if (typeof content == "string") e.appendChild(document.createTextNode(content)); - else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]); - return e; - } - - var range; - if (document.createRange) range = function(node, start, end, endNode) { - var r = document.createRange(); - r.setEnd(endNode || node, end); - r.setStart(node, start); - return r; - }; - else range = function(node, start, end) { - var r = document.body.createTextRange(); - try { r.moveToElementText(node.parentNode); } - catch(e) { return r; } - r.collapse(true); - r.moveEnd("character", end); - r.moveStart("character", start); - return r; - }; - - function removeChildren(e) { - for (var count = e.childNodes.length; count > 0; --count) - e.removeChild(e.firstChild); - return e; - } - - function removeChildrenAndAdd(parent, e) { - return removeChildren(parent).appendChild(e); - } - - var contains = CodeMirror.contains = function(parent, child) { - if (child.nodeType == 3) // Android browser always returns false when child is a textnode - child = child.parentNode; - if (parent.contains) - return parent.contains(child); - do { - if (child.nodeType == 11) child = child.host; - if (child == parent) return true; - } while (child = child.parentNode); - }; - - function activeElt() { - var activeElement = document.activeElement; - while (activeElement && activeElement.root && activeElement.root.activeElement) - activeElement = activeElement.root.activeElement; - return activeElement; - } - // Older versions of IE throws unspecified error when touching - // document.activeElement in some cases (during loading, in iframe) - if (ie && ie_version < 11) activeElt = function() { - try { return document.activeElement; } - catch(e) { return document.body; } - }; - - function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); } - var rmClass = CodeMirror.rmClass = function(node, cls) { - var current = node.className; - var match = classTest(cls).exec(current); - if (match) { - var after = current.slice(match.index + match[0].length); - node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); - } - }; - var addClass = CodeMirror.addClass = function(node, cls) { - var current = node.className; - if (!classTest(cls).test(current)) node.className += (current ? " " : "") + cls; - }; - function joinClasses(a, b) { - var as = a.split(" "); - for (var i = 0; i < as.length; i++) - if (as[i] && !classTest(as[i]).test(b)) b += " " + as[i]; - return b; - } - - // WINDOW-WIDE EVENTS - - // These must be handled carefully, because naively registering a - // handler for each editor will cause the editors to never be - // garbage collected. - - function forEachCodeMirror(f) { - if (!document.body.getElementsByClassName) return; - var byClass = document.body.getElementsByClassName("CodeMirror"); - for (var i = 0; i < byClass.length; i++) { - var cm = byClass[i].CodeMirror; - if (cm) f(cm); - } - } - - var globalsRegistered = false; - function ensureGlobalHandlers() { - if (globalsRegistered) return; - registerGlobalHandlers(); - globalsRegistered = true; - } - function registerGlobalHandlers() { - // When the window resizes, we need to refresh active editors. - var resizeTimer; - on(window, "resize", function() { - if (resizeTimer == null) resizeTimer = setTimeout(function() { - resizeTimer = null; - forEachCodeMirror(onResize); - }, 100); - }); - // When the window loses focus, we want to show the editor as blurred - on(window, "blur", function() { - forEachCodeMirror(onBlur); - }); - } - - // FEATURE DETECTION - - // Detect drag-and-drop - var dragAndDrop = function() { - // There is *some* kind of drag-and-drop support in IE6-8, but I - // couldn't get it to work yet. - if (ie && ie_version < 9) return false; - var div = elt('div'); - return "draggable" in div || "dragDrop" in div; - }(); - - var zwspSupported; - function zeroWidthElement(measure) { - if (zwspSupported == null) { - var test = elt("span", "\u200b"); - removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); - if (measure.firstChild.offsetHeight != 0) - zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); - } - var node = zwspSupported ? elt("span", "\u200b") : - elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); - node.setAttribute("cm-text", ""); - return node; - } - - // Feature-detect IE's crummy client rect reporting for bidi text - var badBidiRects; - function hasBadBidiRects(measure) { - if (badBidiRects != null) return badBidiRects; - var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); - var r0 = range(txt, 0, 1).getBoundingClientRect(); - var r1 = range(txt, 1, 2).getBoundingClientRect(); - removeChildren(measure); - if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780) - return badBidiRects = (r1.right - r0.right < 3); - } - - // See if "".split is the broken IE version, if so, provide an - // alternative way to split lines. - var splitLinesAuto = CodeMirror.splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { - var pos = 0, result = [], l = string.length; - while (pos <= l) { - var nl = string.indexOf("\n", pos); - if (nl == -1) nl = string.length; - var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); - var rt = line.indexOf("\r"); - if (rt != -1) { - result.push(line.slice(0, rt)); - pos += rt + 1; - } else { - result.push(line); - pos = nl + 1; - } - } - return result; - } : function(string){return string.split(/\r\n?|\n/);}; - - var hasSelection = window.getSelection ? function(te) { - try { return te.selectionStart != te.selectionEnd; } - catch(e) { return false; } - } : function(te) { - try {var range = te.ownerDocument.selection.createRange();} - catch(e) {} - if (!range || range.parentElement() != te) return false; - return range.compareEndPoints("StartToEnd", range) != 0; - }; - - var hasCopyEvent = (function() { - var e = elt("div"); - if ("oncopy" in e) return true; - e.setAttribute("oncopy", "return;"); - return typeof e.oncopy == "function"; - })(); - - var badZoomedRects = null; - function hasBadZoomedRects(measure) { - if (badZoomedRects != null) return badZoomedRects; - var node = removeChildrenAndAdd(measure, elt("span", "x")); - var normal = node.getBoundingClientRect(); - var fromRange = range(node, 0, 1).getBoundingClientRect(); - return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1; - } - - // KEY NAMES - - var keyNames = CodeMirror.keyNames = { - 3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", - 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", - 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", - 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod", - 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete", - 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", - 221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete", - 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert" - }; - (function() { - // Number keys - for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i); - // Alphabetic keys - for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); - // Function keys - for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; - })(); - - // BIDI HELPERS - - function iterateBidiSections(order, from, to, f) { - if (!order) return f(from, to, "ltr"); - var found = false; - for (var i = 0; i < order.length; ++i) { - var part = order[i]; - if (part.from < to && part.to > from || from == to && part.to == from) { - f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr"); - found = true; - } - } - if (!found) f(from, to, "ltr"); - } - - function bidiLeft(part) { return part.level % 2 ? part.to : part.from; } - function bidiRight(part) { return part.level % 2 ? part.from : part.to; } - - function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; } - function lineRight(line) { - var order = getOrder(line); - if (!order) return line.text.length; - return bidiRight(lst(order)); - } - - function lineStart(cm, lineN) { - var line = getLine(cm.doc, lineN); - var visual = visualLine(line); - if (visual != line) lineN = lineNo(visual); - var order = getOrder(visual); - var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual); - return Pos(lineN, ch); - } - function lineEnd(cm, lineN) { - var merged, line = getLine(cm.doc, lineN); - while (merged = collapsedSpanAtEnd(line)) { - line = merged.find(1, true).line; - lineN = null; - } - var order = getOrder(line); - var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line); - return Pos(lineN == null ? lineNo(line) : lineN, ch); - } - function lineStartSmart(cm, pos) { - var start = lineStart(cm, pos.line); - var line = getLine(cm.doc, start.line); - var order = getOrder(line); - if (!order || order[0].level == 0) { - var firstNonWS = Math.max(0, line.text.search(/\S/)); - var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; - return Pos(start.line, inWS ? 0 : firstNonWS); - } - return start; - } - - function compareBidiLevel(order, a, b) { - var linedir = order[0].level; - if (a == linedir) return true; - if (b == linedir) return false; - return a < b; - } - var bidiOther; - function getBidiPartAt(order, pos) { - bidiOther = null; - for (var i = 0, found; i < order.length; ++i) { - var cur = order[i]; - if (cur.from < pos && cur.to > pos) return i; - if ((cur.from == pos || cur.to == pos)) { - if (found == null) { - found = i; - } else if (compareBidiLevel(order, cur.level, order[found].level)) { - if (cur.from != cur.to) bidiOther = found; - return i; - } else { - if (cur.from != cur.to) bidiOther = i; - return found; - } - } - } - return found; - } - - function moveInLine(line, pos, dir, byUnit) { - if (!byUnit) return pos + dir; - do pos += dir; - while (pos > 0 && isExtendingChar(line.text.charAt(pos))); - return pos; - } - - // This is needed in order to move 'visually' through bi-directional - // text -- i.e., pressing left should make the cursor go left, even - // when in RTL text. The tricky part is the 'jumps', where RTL and - // LTR text touch each other. This often requires the cursor offset - // to move more than one unit, in order to visually move one unit. - function moveVisually(line, start, dir, byUnit) { - var bidi = getOrder(line); - if (!bidi) return moveLogically(line, start, dir, byUnit); - var pos = getBidiPartAt(bidi, start), part = bidi[pos]; - var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit); - - for (;;) { - if (target > part.from && target < part.to) return target; - if (target == part.from || target == part.to) { - if (getBidiPartAt(bidi, target) == pos) return target; - part = bidi[pos += dir]; - return (dir > 0) == part.level % 2 ? part.to : part.from; - } else { - part = bidi[pos += dir]; - if (!part) return null; - if ((dir > 0) == part.level % 2) - target = moveInLine(line, part.to, -1, byUnit); - else - target = moveInLine(line, part.from, 1, byUnit); - } - } - } - - function moveLogically(line, start, dir, byUnit) { - var target = start + dir; - if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir; - return target < 0 || target > line.text.length ? null : target; - } - - // Bidirectional ordering algorithm - // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm - // that this (partially) implements. - - // One-char codes used for character types: - // L (L): Left-to-Right - // R (R): Right-to-Left - // r (AL): Right-to-Left Arabic - // 1 (EN): European Number - // + (ES): European Number Separator - // % (ET): European Number Terminator - // n (AN): Arabic Number - // , (CS): Common Number Separator - // m (NSM): Non-Spacing Mark - // b (BN): Boundary Neutral - // s (B): Paragraph Separator - // t (S): Segment Separator - // w (WS): Whitespace - // N (ON): Other Neutrals - - // Returns null if characters are ordered as they appear - // (left-to-right), or an array of sections ({from, to, level} - // objects) in the order in which they occur visually. - var bidiOrdering = (function() { - // Character types for codepoints 0 to 0xff - var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; - // Character types for codepoints 0x600 to 0x6ff - var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm"; - function charType(code) { - if (code <= 0xf7) return lowTypes.charAt(code); - else if (0x590 <= code && code <= 0x5f4) return "R"; - else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600); - else if (0x6ee <= code && code <= 0x8ac) return "r"; - else if (0x2000 <= code && code <= 0x200b) return "w"; - else if (code == 0x200c) return "b"; - else return "L"; - } - - var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; - var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; - // Browsers seem to always treat the boundaries of block elements as being L. - var outerType = "L"; - - function BidiSpan(level, from, to) { - this.level = level; - this.from = from; this.to = to; - } - - return function(str) { - if (!bidiRE.test(str)) return false; - var len = str.length, types = []; - for (var i = 0, type; i < len; ++i) - types.push(type = charType(str.charCodeAt(i))); - - // W1. Examine each non-spacing mark (NSM) in the level run, and - // change the type of the NSM to the type of the previous - // character. If the NSM is at the start of the level run, it will - // get the type of sor. - for (var i = 0, prev = outerType; i < len; ++i) { - var type = types[i]; - if (type == "m") types[i] = prev; - else prev = type; - } - - // W2. Search backwards from each instance of a European number - // until the first strong type (R, L, AL, or sor) is found. If an - // AL is found, change the type of the European number to Arabic - // number. - // W3. Change all ALs to R. - for (var i = 0, cur = outerType; i < len; ++i) { - var type = types[i]; - if (type == "1" && cur == "r") types[i] = "n"; - else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; } - } - - // W4. A single European separator between two European numbers - // changes to a European number. A single common separator between - // two numbers of the same type changes to that type. - for (var i = 1, prev = types[0]; i < len - 1; ++i) { - var type = types[i]; - if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1"; - else if (type == "," && prev == types[i+1] && - (prev == "1" || prev == "n")) types[i] = prev; - prev = type; - } - - // W5. A sequence of European terminators adjacent to European - // numbers changes to all European numbers. - // W6. Otherwise, separators and terminators change to Other - // Neutral. - for (var i = 0; i < len; ++i) { - var type = types[i]; - if (type == ",") types[i] = "N"; - else if (type == "%") { - for (var end = i + 1; end < len && types[end] == "%"; ++end) {} - var replace = (i && types[i-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"; - for (var j = i; j < end; ++j) types[j] = replace; - i = end - 1; - } - } - - // W7. Search backwards from each instance of a European number - // until the first strong type (R, L, or sor) is found. If an L is - // found, then change the type of the European number to L. - for (var i = 0, cur = outerType; i < len; ++i) { - var type = types[i]; - if (cur == "L" && type == "1") types[i] = "L"; - else if (isStrong.test(type)) cur = type; - } - - // N1. A sequence of neutrals takes the direction of the - // surrounding strong text if the text on both sides has the same - // direction. European and Arabic numbers act as if they were R in - // terms of their influence on neutrals. Start-of-level-run (sor) - // and end-of-level-run (eor) are used at level run boundaries. - // N2. Any remaining neutrals take the embedding direction. - for (var i = 0; i < len; ++i) { - if (isNeutral.test(types[i])) { - for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {} - var before = (i ? types[i-1] : outerType) == "L"; - var after = (end < len ? types[end] : outerType) == "L"; - var replace = before || after ? "L" : "R"; - for (var j = i; j < end; ++j) types[j] = replace; - i = end - 1; - } - } - - // Here we depart from the documented algorithm, in order to avoid - // building up an actual levels array. Since there are only three - // levels (0, 1, 2) in an implementation that doesn't take - // explicit embedding into account, we can build up the order on - // the fly, without following the level-based algorithm. - var order = [], m; - for (var i = 0; i < len;) { - if (countsAsLeft.test(types[i])) { - var start = i; - for (++i; i < len && countsAsLeft.test(types[i]); ++i) {} - order.push(new BidiSpan(0, start, i)); - } else { - var pos = i, at = order.length; - for (++i; i < len && types[i] != "L"; ++i) {} - for (var j = pos; j < i;) { - if (countsAsNum.test(types[j])) { - if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j)); - var nstart = j; - for (++j; j < i && countsAsNum.test(types[j]); ++j) {} - order.splice(at, 0, new BidiSpan(2, nstart, j)); - pos = j; - } else ++j; - } - if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i)); - } - } - if (order[0].level == 1 && (m = str.match(/^\s+/))) { - order[0].from = m[0].length; - order.unshift(new BidiSpan(0, 0, m[0].length)); - } - if (lst(order).level == 1 && (m = str.match(/\s+$/))) { - lst(order).to -= m[0].length; - order.push(new BidiSpan(0, len - m[0].length, len)); - } - if (order[0].level == 2) - order.unshift(new BidiSpan(1, order[0].to, order[0].to)); - if (order[0].level != lst(order).level) - order.push(new BidiSpan(order[0].level, len, len)); - - return order; - }; - })(); - - // THE END - - CodeMirror.version = "5.19.0"; - - return CodeMirror; -}); - -/*! - * jQuery JavaScript Library v2.1.3 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-12-18T15:11Z - */ - -(function( global, factory ) { - - if ( typeof module === "object" && typeof module.exports === "object" ) { - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Support: Firefox 18+ -// Can't be in strict mode, several libs including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// - -var arr = []; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var support = {}; - - - -var - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - - version = "2.1.3", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android<4.1 - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return just the one element from the set - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return all the elements in a clean array - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - // parseFloat NaNs numeric-cast false positives (null|true|false|"") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - // adding 1 corrects loss of precision from parseFloat (#15100) - return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; - }, - - isPlainObject: function( obj ) { - // Not plain objects: - // - Any object or value whose internal [[Class]] property is not "[object Object]" - // - DOM nodes - // - window - if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.constructor && - !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { - return false; - } - - // If the function hasn't returned already, we're confident that - // |obj| is a plain object, created by {} or constructed with new Object - return true; - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - // Support: Android<4.0, iOS<6 (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call(obj) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - var script, - indirect = eval; - - code = jQuery.trim( code ); - - if ( code ) { - // If the code includes a valid, prologue position - // strict mode pragma, execute code by injecting a - // script tag into the document. - if ( code.indexOf("use strict") === 1 ) { - script = document.createElement("script"); - script.text = code; - document.head.appendChild( script ).parentNode.removeChild( script ); - } else { - // Otherwise, avoid the DOM node creation, insertion - // and removal by using an indirect global eval - indirect( code ); - } - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Support: IE9-11+ - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Support: Android<4.1 - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.2.0-pre - * http://sizzlejs.com/ - * - * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-12-16 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // General-purpose constants - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // http://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + characterEncoding + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }; - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - nodeType = context.nodeType; - - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - if ( !seed && documentIsHTML ) { - - // Try to shortcut find operations when possible (e.g., not under DocumentFragment) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document (jQuery #6963) - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName ) { - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // QSA path - if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - nid = old = expando; - newContext = context; - newSelector = nodeType !== 1 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = attrs.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, parent, - doc = node ? node.ownerDocument || node : preferredDoc; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - parent = doc.defaultView; - - // Support: IE>8 - // If iframe document is assigned to "document" variable and if iframe has been reloaded, - // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 - // IE6-8 do not support the defaultView property so parent will be undefined - if ( parent && parent !== parent.top ) { - // IE11 does not have attachEvent, so all must suffer - if ( parent.addEventListener ) { - parent.addEventListener( "unload", unloadHandler, false ); - } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", unloadHandler ); - } - } - - /* Support tests - ---------------------------------------------------------------------- */ - documentIsHTML = !isXML( doc ); - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( div ) { - div.className = "i"; - return !div.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !doc.getElementsByName || !doc.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [ m ] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - docElem.appendChild( div ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ - if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibing-combinator selector` fails - if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); - - assert(function( div ) { - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = doc.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( div.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return doc; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (oldCache = outerCache[ dir ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - outerCache[ dir ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context !== document && context; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is no seed and only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( div ) { - div.innerHTML = ""; - return div.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( div ) { - div.innerHTML = ""; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( div ) { - return div.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - - -var rneedsContext = jQuery.expr.match.needsContext; - -var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); - - - -var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - }); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - }); - - } - - if ( typeof qualifier === "string" ) { - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; - }); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - })); -}; - -jQuery.fn.extend({ - find: function( selector ) { - var i, - len = this.length, - ret = [], - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - filter: function( selector ) { - return this.pushStack( winnow(this, selector || [], false) ); - }, - not: function( selector ) { - return this.pushStack( winnow(this, selector || [], true) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -}); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - init = jQuery.fn.init = function( selector, context ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Support: Blackberry 4.6 - // gEBID returns nodes no longer in the document (#6963) - if ( elem && elem.parentNode ) { - // Inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return typeof rootjQuery.ready !== "undefined" ? - rootjQuery.ready( selector ) : - // Execute immediately if ready is not present - selector( jQuery ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.extend({ - dir: function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; - }, - - sibling: function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; - } -}); - -jQuery.fn.extend({ - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter(function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { - // Always skip document fragments - if ( cur.nodeType < 11 && (pos ? - pos.index(cur) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector(cur, selectors)) ) { - - matched.push( cur ); - break; - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.unique( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -function sibling( cur, dir ) { - while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return elem.contentDocument || jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.unique( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -}); -var rnotwhite = (/\S+/g); - - - -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // Flag to know if list is currently firing - firing, - // First callback to fire (used internally by add and fireWith) - firingStart, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - firingLength = 0; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( list && ( !fired || stack ) ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // Add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // If we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); - - -// The deferred used on DOM ready -var readyList; - -jQuery.fn.ready = function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; -}; - -jQuery.extend({ - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); - jQuery( document ).off( "ready" ); - } - } -}); - -/** - * The ready event handler and self cleanup method - */ -function completed() { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - jQuery.ready(); -} - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // We once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - } else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - } - } - return readyList.promise( obj ); -}; - -// Kick off the DOM ready check even if the user does not -jQuery.ready.promise(); - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - len ? fn( elems[0], key ) : emptyGet; -}; - - -/** - * Determines whether an object can have data - */ -jQuery.acceptData = function( owner ) { - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - /* jshint -W018 */ - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - -function Data() { - // Support: Android<4, - // Old WebKit does not have Object.preventExtensions/freeze method, - // return new empty object instead with no [[set]] accessor - Object.defineProperty( this.cache = {}, 0, { - get: function() { - return {}; - } - }); - - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; -Data.accepts = jQuery.acceptData; - -Data.prototype = { - key: function( owner ) { - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return the key for a frozen object. - if ( !Data.accepts( owner ) ) { - return 0; - } - - var descriptor = {}, - // Check if the owner object already has a cache key - unlock = owner[ this.expando ]; - - // If not, create one - if ( !unlock ) { - unlock = Data.uid++; - - // Secure it in a non-enumerable, non-writable property - try { - descriptor[ this.expando ] = { value: unlock }; - Object.defineProperties( owner, descriptor ); - - // Support: Android<4 - // Fallback to a less secure definition - } catch ( e ) { - descriptor[ this.expando ] = unlock; - jQuery.extend( owner, descriptor ); - } - } - - // Ensure the cache object - if ( !this.cache[ unlock ] ) { - this.cache[ unlock ] = {}; - } - - return unlock; - }, - set: function( owner, data, value ) { - var prop, - // There may be an unlock assigned to this node, - // if there is no entry for this "owner", create one inline - // and set the unlock as though an owner entry had always existed - unlock = this.key( owner ), - cache = this.cache[ unlock ]; - - // Handle: [ owner, key, value ] args - if ( typeof data === "string" ) { - cache[ data ] = value; - - // Handle: [ owner, { properties } ] args - } else { - // Fresh assignments by object are shallow copied - if ( jQuery.isEmptyObject( cache ) ) { - jQuery.extend( this.cache[ unlock ], data ); - // Otherwise, copy the properties one-by-one to the cache object - } else { - for ( prop in data ) { - cache[ prop ] = data[ prop ]; - } - } - } - return cache; - }, - get: function( owner, key ) { - // Either a valid cache is found, or will be created. - // New caches will be created and the unlock returned, - // allowing direct access to the newly created - // empty data object. A valid owner object must be provided. - var cache = this.cache[ this.key( owner ) ]; - - return key === undefined ? - cache : cache[ key ]; - }, - access: function( owner, key, value ) { - var stored; - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ((key && typeof key === "string") && value === undefined) ) { - - stored = this.get( owner, key ); - - return stored !== undefined ? - stored : this.get( owner, jQuery.camelCase(key) ); - } - - // [*]When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, name, camel, - unlock = this.key( owner ), - cache = this.cache[ unlock ]; - - if ( key === undefined ) { - this.cache[ unlock ] = {}; - - } else { - // Support array or space separated string of keys - if ( jQuery.isArray( key ) ) { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = key.concat( key.map( jQuery.camelCase ) ); - } else { - camel = jQuery.camelCase( key ); - // Try the string as a key before any manipulation - if ( key in cache ) { - name = [ key, camel ]; - } else { - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - name = camel; - name = name in cache ? - [ name ] : ( name.match( rnotwhite ) || [] ); - } - } - - i = name.length; - while ( i-- ) { - delete cache[ name[ i ] ]; - } - } - }, - hasData: function( owner ) { - return !jQuery.isEmptyObject( - this.cache[ owner[ this.expando ] ] || {} - ); - }, - discard: function( owner ) { - if ( owner[ this.expando ] ) { - delete this.cache[ owner[ this.expando ] ]; - } - } -}; -var data_priv = new Data(); - -var data_user = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /([A-Z])/g; - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - data_user.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend({ - hasData: function( elem ) { - return data_user.hasData( elem ) || data_priv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return data_user.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - data_user.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to data_priv methods, these can be deprecated. - _data: function( elem, name, data ) { - return data_priv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - data_priv.remove( elem, name ); - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = data_user.get( elem ); - - if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE11+ - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - data_priv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - data_user.set( this, key ); - }); - } - - return access( this, function( value ) { - var data, - camelKey = jQuery.camelCase( key ); - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - // Attempt to get data from the cache - // with the key as-is - data = data_user.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to get data from the cache - // with the key camelized - data = data_user.get( elem, camelKey ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, camelKey, undefined ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each(function() { - // First, attempt to store a copy or reference of any - // data that might've been store with a camelCased key. - var data = data_user.get( this, camelKey ); - - // For HTML5 data-* attribute interop, we have to - // store property names with dashes in a camelCase form. - // This might not apply to all properties...* - data_user.set( this, camelKey, value ); - - // *... In the case of properties that might _actually_ - // have dashes, we need to also store a copy of that - // unchanged property. - if ( key.indexOf("-") !== -1 && data !== undefined ) { - data_user.set( this, key, value ); - } - }); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each(function() { - data_user.remove( this, key ); - }); - } -}); - - -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = data_priv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray( data ) ) { - queue = data_priv.access( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return data_priv.get( elem, key ) || data_priv.access( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - data_priv.remove( elem, [ type + "queue", key ] ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = data_priv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHidden = function( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); - }; - -var rcheckableType = (/^(?:checkbox|radio)$/i); - - - -(function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Safari<=5.1 - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Safari<=5.1, Android<4.2 - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<=11+ - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -})(); -var strundefined = typeof undefined; - - - -support.focusinBubbles = "onfocusin" in window; - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.hasData( elem ) && data_priv.get( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - data_priv.remove( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && jQuery.acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, j, ret, matched, handleObj, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, matches, sel, handleObj, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.disabled !== true || event.type !== "click" ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var eventDoc, doc, body, - button = original.button; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: Cordova 2.5 (WebKit) (#13255) - // All events should have a target; Cordova deviceready doesn't - if ( !event.target ) { - event.target = document; - } - - // Support: Safari 6.0+, Chrome<28 - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } -}; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - // Support: Android<4.0 - src.returnValue === false ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && e.preventDefault ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && e.stopPropagation ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && e.stopImmediatePropagation ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -// Support: Chrome 15+ -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// Support: Firefox, Chrome, Safari -// Create "bubbling" focus and blur events -if ( !support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - data_priv.remove( doc, fix ); - - } else { - data_priv.access( doc, fix, attaches ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); - - -var - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rhtml = /<|&#?\w+;/, - rnoInnerhtml = /<(?:script|style|link)/i, - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - rscriptType = /^$|\/(?:java|ecma)script/i, - rscriptTypeMasked = /^true\/(.*)/, - rcleanScript = /^\s*\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - - // Support: IE9 - option: [ 1, "" ], - - thead: [ 1, "", "
" ], - col: [ 2, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - _default: [ 0, "", "" ] - }; - -// Support: IE9 -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: 1.x compatibility -// Manipulating tables requires a tbody -function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute("type"); - } - - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - data_priv.set( - elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) - ); - } -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( data_priv.hasData( src ) ) { - pdataOld = data_priv.access( src ); - pdataCur = data_priv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( data_user.hasData( src ) ) { - udataOld = data_user.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - data_user.set( dest, udataCur ); - } -} - -function getAll( context, tag ) { - var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : - context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : - []; - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], ret ) : - ret; -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - // Support: QtWebKit, PhantomJS - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: QtWebKit, PhantomJS - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; - }, - - cleanData: function( elems ) { - var data, elem, type, key, - special = jQuery.event.special, - i = 0; - - for ( ; (elem = elems[ i ]) !== undefined; i++ ) { - if ( jQuery.acceptData( elem ) ) { - key = elem[ data_priv.expando ]; - - if ( key && (data = data_priv.cache[ key ]) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - if ( data_priv.cache[ key ] ) { - // Discard any remaining `private` data - delete data_priv.cache[ key ]; - } - } - } - // Discard any remaining `user` data - delete data_user.cache[ elem[ data_user.expando ] ]; - } - } -}); - -jQuery.fn.extend({ - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each(function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - }); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - remove: function( selector, keepData /* Internal Use Only */ ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map(function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var arg = arguments[ 0 ]; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - arg = this.parentNode; - - jQuery.cleanData( getAll( this ) ); - - if ( arg ) { - arg.replaceChild( elem, this ); - } - }); - - // Force removal if there was no new content (e.g., from empty arguments) - return arg && (arg.length || arg.nodeType) ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - self.domManip( args, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); - } - } - } - } - } - } - - return this; - } -}); - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: QtWebKit - // .get() because push.apply(_, arraylike) throws - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - - -var iframe, - elemdisplay = {}; - -/** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ -// Called only from within defaultDisplay -function actualDisplay( name, doc ) { - var style, - elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? - - // Use of this method is a temporary fix (more like optimization) until something better comes along, - // since it was removed from specification and supported only in FF - style.display : jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; -} - -/** - * Try to determine the default display value of an element - * @param {String} nodeName - */ -function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = (iframe || jQuery( "

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࿷Npxfu~uSIMqdjVK_M{E^GmwIz#vu6ca6% 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]epfUu5GweV5bq8&v?IEX!k&3uC=%*eodDU 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�XDLc_HP{Huz=$@HycfYGX539?-Kol}k9)uLAVP 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 diff --git a/img/second_icon2x.png b/img/second_icon2x.png deleted file mode 100644 index 439b643c01a93114bea8738e902cae87e1ce8d26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1663 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 b8*1`jPr)0}#P1Zs00000NkvXXu0mjf1yqSW diff --git a/img/sidebar_brand2x.png b/img/sidebar_brand2x.png deleted file mode 100644 index 28e4d1164e9718f6e09f6bed36940fef5884a9a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16856 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 XvzkpsgMaFm00000NkvXXu0mjf#8U{p diff --git a/img/third_icon.png b/img/third_icon.png deleted file mode 100644 index ba07d7c13f361af0a618c54e49fd8eaf268cb08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 842 zcmV-Q1GW5#P)hV)Ie!o5kz*-`>%A$ILrpd(Rnp>erm}JZI+r z@60=A&O0R~|9E&d{bjS+$z1;wOoJZihIY^Mx;Q3^(nO;MKWG7`E`cx50b?P9@yDxT&MQq3GgCE{O2L7;{gle}Yj- zu4m&GuPq>aj9M>bxV?P^#@Q(`E2H5v1mgvXR+yP9EVAPu=BkKq%o)%VtX<1ym;(b3 z49COJ12*nlj62E*cY)p>^}*5P%0M%@KUj0pM|d_UmWK(FUj~|4ZC>36!bjm&lrpt; zxDi#inn$=CUO^MggJGs1{qgV(TFkt&Ho`06HB>-7RGQ-Sx59fEVdkB+5xxXk<3fYl zT{smd9H zw!lO<3yuE8Y3n!n2KMYv;46#+-A=_7-vsSdptWy`pL2RdSTlAJCV&>|9q{|N zNc%Eeb!y5NLwF>7ghr@?6@E=e`u@YyZ04P{F|Zzjcfz5l zi&J|5ZBccrd4&Cq!3{BY26qb~{%of!%WA>Iu;gL(DI zSAl+ed&25}n;Y!Tb~-{YBgC4>SHZc6y8Se>a~sYCmB@LZU9~<|rWY9426{uR_Fd4{ zhe>@1QZ)GaRE`+X|BDVeA@0Bh&^uXiBo$LZQH*HDHos U`p#5Qwg3PC07*qoM6N<$g0v`*RsaA1 diff --git a/img/third_icon2x.png b/img/third_icon2x.png deleted file mode 100644 index 030e8f4262c7780d3e1deb0d1d4ce00d5503065b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1893 zcmV-r2b%baP)Pq{Yk-tC6xG$dt@XG5y2BN?YuYGRrC3w8dPe-!q+eIDOwY_uli(otf|6 zJ1;!G=brPv_q)$C=WgemYmXk?)~!HSDp1#zKc2>KH#av=XFpTG3E%+O4Yq*~!KS*p zy2JQxtE2$p%>hx?MB^fG5vZ@Uk3!cW$~xfN-)!sxKlzoeya&G!oLXqneDa8~+KFRs zjI~qI0Imj0!SBHAAce)?WQ#4VM}!AW73U>Z&r(6C>j$QRkAc~K3bR33d})4ew;?|i z909(qWJ5QUibmTN;BznGUCPH*3@$n8c?quIS-iapisP18q&SM zkETKeuN%tU;Fvaqyxq&$Ou3@qm2z`Y2jR;-0iucrXnX_Q2!R{2;vqkXW6>K(HFhjXLa7}pt%%#s@-6&2$n}dO7|{MJ zu@3~qXFHT0xCx|TdJK9IoRn=v0*)TCBhygM?c?5npDqi{>M1;9np_#p-?PE%dy`lzN}uQrbO6n5iBJVZHQM`|KzEeOsEw zXmzFpg#8U5t@qUzd^HPErU!0K>GXX+Ex|I=0}<|ANDFCLYP~Nr0;1Z?G?Zf>`$1z$ z`|6Pi0qK3Z?&RCIp1(RM4Jb_kEsPshz&sXI2Dk&#T+ho_Jr;`__Bg z?Jm~5fSkS!u+-Z}HTDuoo528=yu|t9I0U>8RAbMQ)Dx_A$%pZ$6h}G76w+Th0g^hK z@2w-@OkmTVtBNSz_@t^4_YZg(wDvN}bAg#guv52MpA(rG!FVTapEzv8ui*x<*Wyu4 zE6;9r+ZwK4X>En@2rvNXbo5Q@S{?<%;zS_kVlUCZ6UU|IqaE_IJONbP07fTeN9-~s zIUAcaFE?=z-)QXd5-;&646y^jpFpP5yjTWlf70k%wugi$K)lw)n9UB!%|$HCA2Ig$ z38AFOu_;eoGlRqr{jHjdhp^VG`~YN|LJyFfQ7xJO{qtsMe&*xhJ;f6sc=(=NzxQ61 zc|k%6Ab?g;$+QSE=qm!^)qB4OGA(=S9s2v3j)(9NpzD@wj>zD(3UxI|^6WR6IJ3t) zLyTG*jkyWZdOOm$9U4iI^##W}uk9%FhrO0W1?IAiuCv{BpSMB@k~bLWeOR_NG{4&T zn(2X%z5o&<9g%8Aji-@o*SsZeKgDqf_?)^9rd6YnZymIk-CU@%PZ-n-b;=jVAbb?q z2V_q~F{gb5&~svIFQq&Nn7tO2pUXCw&oK7*$hlwIC%M=iCI;J2x;nYZR$mwo>Ge*4 z*o!}L8fn&0Rm;FBzAyM0$ka1yeT*~Rzbk}?i@CGALibMIwU&%u7@D8?cu3E80_a|LQf#$Ws5c6!GjCYx6zr{*>n(ep?~R2=KZS={tPAk*2)G)tj4dZN8`R3m2dd ztt)*v*~3}JuZ;C}+qHV$YsMW!`@We>*GDaP#8e5sRw4b1hiv)KrxuyH+@=gNI3 zp9ad_I$Znnw3%I|x}Dg}zt-8fD)y7z6uOUI z+hiYwupnNKGJBMW>5e=wBtJK?5dTyPU>a>n{QgVql}d89EH{FL5a!xn7Qh?96L++~IY8I|8io1koh81{TVU`u^Z4 zFIL44`O>KD$7{I)5zYWjQo}QeIul$7^qHl^8?kiXHOiKm*r?gfpK!d-DP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3*rl3Y1t{Ze%Cq>wy6vrb5iAhk4j{rn73M-uNXRer`4 z{yui@=i5I8&+PAG=g0Sq^m{0rFW(c&pJMbq9_;U9_agMi5rrRbn>wYA?R;+x<-IuP-Gw zkwJT5ZcK3a`MJfk@T<1c%X8v9^V#`NYlOPLHy}hj+ZaqpWWbk@ER^7Dj5P$}*vQXd z_u3Qfd)Kjhbq%R!gn5)m}$SEjMeW)z(^XqsN|rFzcmP*IVy>3?4eT_2BBk z8Dq>i)6COmnRT|==U9}_%F9++b+y&k*m0*#`|q-=+imwfPB@g($;VDP^|aH^xYXKB zH($Hu*4u8s<7d{sS^Yh0;ZK?S_gM?ytSMvpomYQljl;G6xJ3}0m~uwOVh&`yDgzXB zRL*=0IY(tqIrBZz6c))^FePUPWsD5w6QbSlGk3o-_iyv&EdNJ&i~lNfPO1C<$edH^ zzM1=L-u@eybI+)R{M_9eJi0aV+lzW+&a-MPDTSFY$aEC9JK{ODFAH|a#=P*& zy3Rr`dA1hTp84#hqA9DSGjbiBNv$zfY4i9zll4xH_sR3l9(`S7r8xV!%^Wcpr_32n zCgzY=AZYQ{d6;ow!s}Fjj_)JyH3_^$4KBy)5e;MYm~D?`j?sjE)>^sU?c3OG9BS