0001-Use-xstatic-packages-instead-of-shipping-common-libr.patch
README.txt | ||
---|---|---|
1 |
Configuration |
|
2 |
============= |
|
3 | ||
4 |
You should add gadjo.finders.XStaticFinder to STATICFILES_FINDERS, |
|
5 | ||
6 |
STATICFILES_FINDERS = ( |
|
7 |
"django.contrib.staticfiles.finders.FileSystemFinder", |
|
8 |
"django.contrib.staticfiles.finders.AppDirectoriesFinder", |
|
9 |
"gadjo.finders.XStaticFinder", |
|
10 |
) |
|
11 | ||
12 |
There is a CDNS settings, that can contain a list of (cdn name, protocol) |
|
13 |
tuples; for example: |
|
14 | ||
15 |
CDNS = [('google', 'https')] |
|
16 | ||
17 | ||
18 |
Usage |
|
19 |
===== |
|
20 | ||
21 |
Make your application base template {% extends "gadjo/base.html" %}. |
|
22 | ||
23 |
Additional static files libraries can be added via INSTALLED_APPS, |
|
24 |
for example 'xstatic.pkg.jquery_tablesorter'; its static files can |
|
25 |
then be referred in a template using the xstatic template tag: |
|
26 | ||
27 |
{% xstatic 'jquery_tablesorter' 'jquery.tablesorter.js' %} |
gadjo/finders.py | ||
---|---|---|
1 |
# this file derives from django-xstatic: |
|
2 |
# Author: Gautier Hayoun |
|
3 |
# Author-email: ghayoun@gmail.com |
|
4 |
# License: MIT license |
|
5 |
# Home-page: http://github.com/gautier/django-xstatic |
|
6 | ||
7 |
import os |
|
8 | ||
9 |
from django.conf import settings |
|
10 |
from django.contrib.staticfiles import utils |
|
11 |
from django.contrib.staticfiles.finders import BaseFinder |
|
12 |
from django.core.exceptions import ImproperlyConfigured |
|
13 |
from django.core.files.storage import FileSystemStorage |
|
14 |
from django.utils.importlib import import_module |
|
15 | ||
16 | ||
17 |
class XStaticStorage(FileSystemStorage): |
|
18 |
""" |
|
19 |
A file system storage backend that takes an xstatic package module and works |
|
20 |
for the data contained in it. |
|
21 |
""" |
|
22 |
prefix = 'xstatic' |
|
23 | ||
24 |
def __init__(self, package, *args, **kwargs): |
|
25 |
""" |
|
26 |
Returns a static file storage if available in the given xstatic package |
|
27 |
""" |
|
28 |
try: |
|
29 |
package = import_module(package) |
|
30 |
except ImportError: |
|
31 |
raise ImproperlyConfigured('Cannot import module "%s"' % package) |
|
32 |
location = package.BASE_DIR |
|
33 |
super(XStaticStorage, self).__init__(location, *args, **kwargs) |
|
34 | ||
35 | ||
36 |
class XStaticFinder(BaseFinder): |
|
37 |
storage_class = XStaticStorage |
|
38 | ||
39 |
gadjo_deps = ['jquery', 'jquery_ui', 'font_awesome'] |
|
40 | ||
41 |
def __init__(self, apps=None, *args, **kwargs): |
|
42 |
# The list of apps that are handled |
|
43 |
self.apps = [] |
|
44 |
# Mapping of app module paths to storage instances |
|
45 |
self.storages = {} |
|
46 |
if apps is None: |
|
47 |
apps = settings.INSTALLED_APPS |
|
48 |
apps = list(apps) |
|
49 |
for dep in self.gadjo_deps: |
|
50 |
apps.append('xstatic.pkg.%s' % dep) |
|
51 |
for app in apps: |
|
52 |
if app.lower().startswith('xstatic.'): |
|
53 |
app_storage = self.storage_class(app) |
|
54 |
if os.path.isdir(app_storage.location): |
|
55 |
self.storages[app] = app_storage |
|
56 |
if app not in self.apps: |
|
57 |
self.apps.append(app) |
|
58 |
super(XStaticFinder, self).__init__(*args, **kwargs) |
|
59 | ||
60 |
def find(self, path, all=False): |
|
61 |
"""Look for files in the registered xstatic.* packages""" |
|
62 |
if path.startswith(self.storage_class.prefix + '/'): |
|
63 |
path = path[len(self.storage_class.prefix)+1:] |
|
64 |
matches = [] |
|
65 |
for app, storage in self.storages.items(): |
|
66 |
if storage.exists(path): |
|
67 |
matched_path = storage.path(path) |
|
68 |
if matched_path: |
|
69 |
if not all: |
|
70 |
return matched_path |
|
71 |
matches.append(matched_path) |
|
72 |
return matches |
|
73 | ||
74 |
def list(self, ignore_patterns=[]): |
|
75 |
"""List all files in registered xstatic.* packages""" |
|
76 |
for app, storage in self.storages.items(): |
|
77 |
for path in utils.get_files(storage, ignore_patterns): |
|
78 |
yield path, storage |
gadjo/static/css/fontawesome-webfont.svg | ||
---|---|---|
1 |
<?xml version="1.0" standalone="no"?> |
|
2 |
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > |
|
3 |
<svg xmlns="http://www.w3.org/2000/svg"> |
|
4 |
<metadata></metadata> |
|
5 |
<defs> |
|
6 |
<font id="FontAwesomeRegular" horiz-adv-x="1843" > |
|
7 |
<font-face units-per-em="2048" ascent="1536" descent="-512" /> |
|
8 |
<missing-glyph horiz-adv-x="512" /> |
|
9 |
<glyph horiz-adv-x="0" /> |
|
10 |
<glyph horiz-adv-x="0" /> |
|
11 |
<glyph unicode="
" horiz-adv-x="512" /> |
|
12 |
<glyph unicode=" " horiz-adv-x="512" /> |
|
13 |
<glyph unicode="	" horiz-adv-x="512" /> |
|
14 |
<glyph unicode=" " horiz-adv-x="512" /> |
|
15 |
<glyph unicode="o" horiz-adv-x="1591" /> |
|
16 |
<glyph unicode="¨" horiz-adv-x="2048" /> |
|
17 |
<glyph unicode="©" horiz-adv-x="2048" /> |
|
18 |
<glyph unicode="®" horiz-adv-x="2048" /> |
|
19 |
<glyph unicode="´" horiz-adv-x="2048" /> |
|
20 |
<glyph unicode="Æ" horiz-adv-x="2048" /> |
|
21 |
<glyph unicode="Í" horiz-adv-x="2048" /> |
|
22 |
<glyph unicode=" " horiz-adv-x="784" /> |
|
23 |
<glyph unicode=" " horiz-adv-x="1569" /> |
|
24 |
<glyph unicode=" " horiz-adv-x="784" /> |
|
25 |
<glyph unicode=" " horiz-adv-x="1569" /> |
|
26 |
<glyph unicode=" " horiz-adv-x="523" /> |
|
27 |
<glyph unicode=" " horiz-adv-x="392" /> |
|
28 |
<glyph unicode=" " horiz-adv-x="261" /> |
|
29 |
<glyph unicode=" " horiz-adv-x="261" /> |
|
30 |
<glyph unicode=" " horiz-adv-x="196" /> |
|
31 |
<glyph unicode=" " horiz-adv-x="313" /> |
|
32 |
<glyph unicode=" " horiz-adv-x="87" /> |
|
33 |
<glyph unicode=" " horiz-adv-x="313" /> |
|
34 |
<glyph unicode="›" horiz-adv-x="2048" /> |
|
35 |
<glyph unicode=" " horiz-adv-x="392" /> |
|
36 |
<glyph unicode="™" horiz-adv-x="2048" /> |
|
37 |
<glyph unicode="∞" horiz-adv-x="2048" /> |
|
38 |
<glyph unicode="" horiz-adv-x="1024" d="M0 0z" /> |
|
39 |
<glyph unicode="" horiz-adv-x="1536" d="M6 1489q20 47 70 47h1382q51 0 72 -47q20 -47 -17 -84l-610 -610v-641h248q33 0 55.5 -22.5t22.5 -53.5q0 -33 -22.5 -55.5t-55.5 -22.5h-768q-31 0 -53.5 22.5t-22.5 55.5q0 31 22.5 53.5t53.5 22.5h250v641l-610 610q-37 37 -17 84z" /> |
|
40 |
<glyph unicode="" horiz-adv-x="1488" d="M0 213q0 57 27.5 103t72.5 77t98.5 47.5t106.5 16.5q25 0 50.5 -4t50.5 -11v779q0 27 16 48t43 29q23 6 99.5 29t178 52.5t215 62.5t211 60.5t164 46t74.5 18.5q35 0 58.5 -23.5t23.5 -58.5v-1028q0 -59 -27.5 -104.5t-73 -76t-99.5 -47t-105 -16.5t-105.5 16.5t-98.5 47 t-71.5 75.5t-27.5 105q0 57 27.5 103t71.5 77t98.5 47t105.5 16q27 0 52.5 -4t49.5 -10v537l-678 -195v-815q0 -59 -27.5 -104.5t-71.5 -76t-98.5 -47t-105.5 -16.5q-53 0 -106.5 16.5t-98.5 47t-72.5 76t-27.5 104.5z" /> |
|
41 |
<glyph unicode="" horiz-adv-x="1597" d="M0 901q0 137 52 258t143.5 212t212 143.5t258.5 52.5q137 0 257.5 -52.5t212 -143.5t143.5 -212t52 -258q0 -98 -28.5 -191.5t-81.5 -174.5l358 -359q18 -18 18 -47q0 -16 -18 -43t-45 -53.5t-53.5 -45t-42.5 -18.5q-29 0 -47 19l-359 358q-82 -53 -175 -81.5t-191 -28.5 q-137 0 -258 52t-212.5 143t-143.5 212t-52 258zM266 901q0 -84 32 -156.5t86 -126t127 -85t155 -31.5t154.5 31.5t126.5 85t86 126t32 156.5q0 82 -32 154.5t-86 127t-126.5 86t-154.5 31.5t-155 -31.5t-127 -86t-86 -127t-32 -154.5zM414 901q0 51 19.5 97t54 81t80 54.5 t98.5 19.5q20 0 34.5 -14.5t14.5 -36.5q0 -20 -14.5 -34.5t-34.5 -14.5q-63 0 -107.5 -44t-44.5 -108q0 -20 -14.5 -34.5t-34.5 -14.5q-23 0 -37 14.5t-14 34.5z" /> |
|
42 |
<glyph unicode="" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h1536v852q-31 -31 -58 -50q-106 -80 -212.5 -159.5t-211.5 -163.5q-61 -49 -131.5 -94t-156.5 -45q-82 0 -153 45t-132 94 q-104 84 -211 164t-213 159q-27 18 -57 50v-852zM154 1317q0 -31 14 -65.5t35.5 -66.5t47 -59.5t50.5 -46.5q100 -76 199.5 -150.5t199.5 -152.5q20 -16 48 -37.5t58 -42t59.5 -35t54.5 -14.5h2h2q25 0 54.5 14.5t59 35t57 42t48.5 37.5q100 78 199.5 153t199.5 150 q25 18 50.5 46t47 60t36 66.5t14.5 65.5v65h-1536v-65z" /> |
|
43 |
<glyph unicode="" horiz-adv-x="1802" d="M0 1073q0 113 34 205t97.5 155.5t153.5 98.5t202 35q59 0 117 -18.5t110 -48.5t99 -68.5t88 -77.5q39 39 87 77.5t100.5 68.5t109 48.5t115.5 18.5q113 0 204 -35t154.5 -98.5t97 -155.5t33.5 -205q0 -66 -18.5 -130t-51 -124.5t-74.5 -115t-87 -99.5l-615 -612 q-23 -23 -55 -23q-31 0 -57 23l-615 614q-45 45 -87 99.5t-73.5 114t-50 124t-18.5 129.5z" /> |
|
44 |
<glyph unicode="" horiz-adv-x="1675" d="M1 959.5q9 27.5 54 33.5l506 74l227 459q20 41 49 41t50 -41l227 -459l506 -74q45 -6 54 -33.5t-23 -60.5l-367 -356l86 -504q8 -45 -15.5 -62.5t-64.5 5.5l-452 237l-453 -237q-41 -23 -64.5 -5.5t-15.5 62.5l86 504l-364 356q-35 33 -26 60.5z" /> |
|
45 |
<glyph unicode="" horiz-adv-x="1675" d="M0 948q0 23 18.5 32t36.5 13l506 74l227 459q6 14 20 27.5t30 13.5q18 0 30.5 -13.5t18.5 -27.5l227 -459l506 -74q18 -4 36.5 -13t18.5 -32q0 -14 -7 -26.5t-17 -22.5l-367 -356l86 -504q0 -4 1 -9t1 -12q0 -20 -9 -34.5t-32 -14.5t-41 13l-452 237l-453 -237 q-18 -12 -39 -13q-23 0 -33 14.5t-10 34.5q0 6 1 11.5t1 9.5l86 504l-364 356q-10 10 -18.5 22.5t-8.5 26.5zM289 866l274 -268l-65 -377l340 178l340 -178l-66 377l274 268l-378 56l-170 344l-170 -344z" /> |
|
46 |
<glyph unicode="" horiz-adv-x="1566" d="M0 57v387q0 37 18.5 82t48 86t65.5 74t71 43q18 6 66 13.5t102.5 14.5t104.5 13t77 10q-92 59 -144.5 153.5t-52.5 205.5q0 88 34 165.5t91.5 136t135 92.5t165.5 34t166 -34t136.5 -92.5t92 -136t33.5 -165.5q0 -109 -52 -204.5t-144 -154.5q27 -4 77 -10t104 -13 t101 -14.5t68 -13.5q35 -10 70.5 -42t65.5 -74t48.5 -87t18.5 -82v-387q-10 -4 -22.5 -14t-27 -19.5t-27.5 -16.5t-22 -7h-1370q-35 0 -53 21.5t-45 35.5z" /> |
|
47 |
<glyph unicode="" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM115 154q0 -16 11 -27.5t28 -11.5h153q16 0 27.5 11t11.5 28v153q0 16 -11 27.5t-28 11.5h-153q-16 0 -27.5 -11t-11.5 -28v-153zM115 512 q0 -16 11 -27.5t28 -11.5h153q16 0 27.5 11.5t11.5 27.5v154q0 16 -11 27.5t-28 11.5h-153q-16 0 -27.5 -11.5t-11.5 -27.5v-154zM115 870q0 -16 11 -27.5t28 -11.5h153q16 0 27.5 11.5t11.5 27.5v154q0 16 -11 27.5t-28 11.5h-153q-16 0 -27.5 -11.5t-11.5 -27.5v-154z M115 1229q0 -16 11 -27.5t28 -11.5h153q16 0 27.5 11t11.5 28v153q0 16 -11 27.5t-28 11.5h-153q-16 0 -27.5 -11t-11.5 -28v-153zM461 154q0 -16 11 -27.5t28 -11.5h843q16 0 27.5 11t11.5 28v512q0 16 -11 27.5t-28 11.5h-843q-16 0 -27.5 -11.5t-11.5 -27.5v-512z M461 870q0 -16 11 -27.5t28 -11.5h843q16 0 27.5 11.5t11.5 27.5v512q0 16 -11 27.5t-28 11.5h-843q-16 0 -27.5 -11t-11.5 -28v-512zM1497 154q0 -16 11.5 -27.5t27.5 -11.5h154q16 0 27.5 11t11.5 28v153q0 16 -11.5 27.5t-27.5 11.5h-154q-16 0 -27.5 -11t-11.5 -28v-153 zM1497 512q0 -16 11.5 -27.5t27.5 -11.5h154q16 0 27.5 11.5t11.5 27.5v154q0 16 -11.5 27.5t-27.5 11.5h-154q-16 0 -27.5 -11.5t-11.5 -27.5v-154zM1497 870q0 -16 11.5 -27.5t27.5 -11.5h154q16 0 27.5 11.5t11.5 27.5v154q0 16 -11.5 27.5t-27.5 11.5h-154 q-16 0 -27.5 -11.5t-11.5 -27.5v-154zM1497 1229q0 -16 11.5 -27.5t27.5 -11.5h154q16 0 27.5 11t11.5 28v153q0 16 -11.5 27.5t-27.5 11.5h-154q-16 0 -27.5 -11t-11.5 -28v-153z" /> |
|
48 |
<glyph unicode="" d="M0 78v536q0 33 22.5 55.5t55.5 22.5h690q33 0 55.5 -22.5t22.5 -55.5v-536q0 -33 -22.5 -55.5t-55.5 -22.5h-690q-33 0 -55.5 22.5t-22.5 55.5zM0 922v538q0 31 22.5 53.5t55.5 22.5h690q33 0 55.5 -22.5t22.5 -53.5v-538q0 -33 -22.5 -54.5t-55.5 -21.5h-690 q-33 0 -55.5 21.5t-22.5 54.5zM999 78v536q0 33 21.5 55.5t54.5 22.5h692q31 0 53.5 -22.5t22.5 -55.5v-536q0 -33 -22.5 -55.5t-53.5 -22.5h-692q-33 0 -54.5 22.5t-21.5 55.5zM999 922v538q0 31 21.5 53.5t54.5 22.5h692q31 0 53.5 -22.5t22.5 -53.5v-538 q0 -33 -22.5 -54.5t-53.5 -21.5h-692q-33 0 -54.5 21.5t-21.5 54.5z" /> |
|
49 |
<glyph unicode="" d="M0 78v270q0 33 22.5 54.5t55.5 21.5h358q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5h-358q-33 0 -55.5 22.5t-22.5 55.5zM0 655v226q0 33 22.5 54t55.5 21h358q31 0 53.5 -21.5t22.5 -53.5v-226q0 -33 -22.5 -55t-53.5 -22h-358q-33 0 -55.5 22.5 t-22.5 54.5zM0 1188v272q0 31 22.5 53.5t55.5 22.5h358q31 0 53.5 -22.5t22.5 -53.5v-272q0 -33 -22.5 -55.5t-53.5 -22.5h-358q-33 0 -55.5 22.5t-22.5 55.5zM666 78v270q0 33 22.5 54.5t54.5 21.5h359q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5 h-359q-33 0 -55 22.5t-22 55.5zM666 655v226q0 33 22.5 54t54.5 21h359q31 0 53.5 -21.5t22.5 -53.5v-226q0 -33 -22.5 -55t-53.5 -22h-359q-33 0 -55 22.5t-22 54.5zM666 1188v272q0 31 22.5 53.5t54.5 22.5h359q31 0 53.5 -22.5t22.5 -53.5v-272q0 -33 -22.5 -55.5 t-53.5 -22.5h-359q-33 0 -55 22.5t-22 55.5zM1331 78v270q0 33 22.5 54.5t55.5 21.5h358q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5h-358q-33 0 -55.5 22.5t-22.5 55.5zM1331 655v226q0 33 22.5 54t55.5 21h358q31 0 53.5 -21.5t22.5 -53.5v-226 q0 -33 -22.5 -55t-53.5 -22h-358q-33 0 -55.5 22.5t-22.5 54.5zM1331 1188v272q0 31 22.5 53.5t55.5 22.5h358q31 0 53.5 -22.5t22.5 -53.5v-272q0 -33 -22.5 -55.5t-53.5 -22.5h-358q-33 0 -55.5 22.5t-22.5 55.5z" /> |
|
50 |
<glyph unicode="" d="M0 78v270q0 33 22.5 54.5t55.5 21.5h297q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5h-297q-33 0 -55.5 22.5t-22.5 55.5zM0 655v226q0 33 22.5 54t55.5 21h297q31 0 53.5 -21.5t22.5 -53.5v-226q0 -33 -22.5 -55t-53.5 -22h-297q-33 0 -55.5 22.5 t-22.5 54.5zM0 1188v272q0 31 22.5 53.5t55.5 22.5h297q31 0 53.5 -22.5t22.5 -53.5v-272q0 -33 -22.5 -55.5t-53.5 -22.5h-297q-33 0 -55.5 22.5t-22.5 55.5zM604 78v270q0 33 22.5 54.5t55.5 21.5h1085q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5 h-1085q-33 0 -55.5 22.5t-22.5 55.5zM604 655v226q0 33 22.5 54t55.5 21h1085q31 0 53.5 -21.5t22.5 -53.5v-226q0 -33 -22.5 -55t-53.5 -22h-1085q-33 0 -55.5 22.5t-22.5 54.5zM604 1188v272q0 31 22.5 53.5t55.5 22.5h1085q31 0 53.5 -22.5t22.5 -53.5v-272 q0 -33 -22.5 -55.5t-53.5 -22.5h-1085q-33 0 -55.5 22.5t-22.5 55.5z" /> |
|
51 |
<glyph unicode="" d="M0 732.5q0 33.5 23 55.5l174 175q23 23 56.5 22.5t55.5 -22.5l365 -365q23 -23 56.5 -23t55.5 23l746 745q23 23 56.5 23t56.5 -23l174 -174q23 -23 22.5 -56.5t-22.5 -55.5l-910 -910q-23 -23 -62.5 -39t-72.5 -16h-88q-35 0 -75 16.5t-62 38.5l-526 529 q-23 23 -23 56.5z" /> |
|
52 |
<glyph unicode="" horiz-adv-x="1536" d="M0 192.5q0 38.5 29 67.5l508 510l-508 500q-29 29 -29 67.5t29 67.5l100 100q29 29 68 29t67 -29l504 -504l504 504q29 29 67.5 29t67.5 -29l100 -100q29 -29 29 -68t-29 -67l-508 -510l508 -500q29 -29 29 -66.5t-29 -66.5l-100 -102q-29 -29 -68 -29t-67 29l-504 505 l-506 -505q-29 -29 -66.5 -29t-66.5 29l-100 100q-29 29 -29 67.5z" /> |
|
53 |
<glyph unicode="" horiz-adv-x="1597" d="M0 901q0 137 52 258t143.5 212t212 143.5t258.5 52.5q137 0 259 -52.5t212 -143.5t142 -212t52 -258q0 -102 -28.5 -195.5t-81.5 -170.5l358 -359q18 -18 18 -46t-18 -48l-94 -94q-20 -18 -48 -18.5t-46 18.5l-359 358q-78 -53 -171 -81.5t-195 -28.5q-137 0 -258 52 t-212.5 142t-143.5 211t-52 260zM266 901q0 -84 32 -156.5t86 -126t127 -85t155 -31.5t155.5 31.5t126.5 85t85 126t32 156.5q0 82 -32 154.5t-85 127t-126.5 86t-155.5 31.5t-155 -31.5t-127 -86t-86 -127t-32 -154.5zM399 868v66q0 33 33 33h168v168q0 33 33 32h65 q14 0 24.5 -9t10.5 -23v-168h166q33 0 33 -33v-66q0 -14 -9.5 -24t-23.5 -10h-166v-166q0 -14 -10 -23.5t-25 -9.5h-65q-33 0 -33 33v166h-168q-14 0 -23.5 10t-9.5 24z" /> |
|
54 |
<glyph unicode="" horiz-adv-x="1597" d="M0 901q0 137 52 258t143.5 212t212 143.5t258.5 52.5q137 0 259 -52.5t212 -143.5t142 -212t52 -258q0 -102 -28.5 -195.5t-81.5 -170.5l358 -359q18 -18 18 -46t-18 -48l-94 -94q-20 -18 -48 -18.5t-46 18.5l-359 358q-78 -53 -171 -81.5t-195 -28.5q-137 0 -258 52 t-212.5 142t-143.5 211t-52 260zM266 901q0 -84 32 -156.5t86 -126t127 -85t155 -31.5t155.5 31.5t126.5 85t85 126t32 156.5q0 82 -32 154.5t-85 127t-126.5 86t-155.5 31.5t-155 -31.5t-127 -86t-86 -127t-32 -154.5zM399 868v66q0 33 33 33h467q33 0 33 -33v-66 q0 -14 -9.5 -24t-23.5 -10h-467q-14 0 -23.5 10t-9.5 24z" /> |
|
55 |
<glyph unicode="" horiz-adv-x="1488" d="M0 713q0 186 86 349t240 267q12 10 28 6q18 -4 25 -16l90 -131q10 -12 6 -27.5t-16 -25.5q-106 -72 -164.5 -182.5t-58.5 -239.5q0 -104 39.5 -197.5t108.5 -162t162 -108.5t197 -40t197.5 40t163.5 108.5t109.5 161.5t39.5 198q0 129 -59 239.5t-164 182.5 q-14 10 -16 24q-4 16 6 29l88 131q10 12 25.5 15t29.5 -5q154 -104 240 -267t86 -349q0 -154 -58.5 -289t-160 -236.5t-237.5 -160t-290 -58.5t-289 58.5t-236 160t-159.5 236.5t-58.5 289zM627 793v704q0 16 11 27.5t28 11.5h157q16 0 27.5 -11.5t11.5 -27.5v-704 q0 -16 -11 -27.5t-28 -11.5h-157q-16 0 -27.5 11t-11.5 28z" /> |
|
56 |
<glyph unicode="" d="M0 39v260q0 16 11.5 27.5t27.5 11.5h192q16 0 26.5 -11.5t10.5 -27.5v-260q0 -16 -10 -27.5t-27 -11.5h-192q-39 0 -39 39zM393 39v434q0 16 11.5 27.5t27.5 11.5h193q16 0 26.5 -11.5t10.5 -27.5v-434q0 -16 -10.5 -27.5t-26.5 -11.5h-193q-16 0 -27.5 11.5t-11.5 27.5z M786 39v676q0 16 11.5 27.5t27.5 11.5h193q16 0 27.5 -11.5t11.5 -27.5v-676q0 -16 -11.5 -27.5t-27.5 -11.5h-193q-16 0 -27.5 11.5t-11.5 27.5zM1182 39v995q0 16 10 27.5t27 11.5h192q16 0 27.5 -11t11.5 -28v-995q0 -16 -11.5 -27.5t-27.5 -11.5h-192q-16 0 -26.5 11.5 t-10.5 27.5zM1575 39v1458q0 39 39 39h190q39 0 39 -39v-1458q0 -39 -39 -39h-190q-39 0 -39 39z" /> |
|
57 |
<glyph unicode="" horiz-adv-x="1593" d="M0 651v236q0 12 30.5 21.5t68.5 15.5t74 9t48 5q18 61 49 117q-55 82 -120 157l-7 15q0 8 28 38.5t62.5 65.5t66.5 62.5t40 27.5q2 0 26.5 -18.5t54.5 -41t56.5 -43t32.5 -24.5q29 16 58.5 26.5t60.5 20.5q0 12 3 49t9 75t15.5 69t21.5 31h237q14 0 19 -15 q12 -49 17 -103t14 -106q31 -8 59.5 -19t56.5 -28q8 6 34 26.5t55.5 43t53 40t29.5 17.5t37 -27.5t65 -62.5t61.5 -65.5t27.5 -38.5q0 -4 -17.5 -28.5t-39 -53.5t-42 -55.5t-24.5 -32.5q33 -55 51 -123q49 -10 103.5 -13t101.5 -20q16 -4 16 -18v-236q0 -12 -29.5 -21.5 t-68.5 -15.5t-76 -9t-49 -5q-14 -57 -47 -117q55 -82 121 -157l6 -15q0 -8 -27.5 -38.5t-62.5 -65.5t-66.5 -62.5t-40.5 -27.5q-2 0 -26.5 18.5t-54 41t-56 43t-33.5 24.5q-29 -16 -58.5 -27.5t-59.5 -19.5q-2 -12 -5.5 -49.5t-9.5 -76t-14 -69.5t-21 -31h-237q-14 0 -19 17 q-14 49 -19 103t-11 103q-61 18 -117 50q-41 -31 -81 -60.5t-79 -62.5l-12 -4q-6 0 -37 27.5t-64.5 62.5t-61 65.5t-27.5 38.5q0 2 16 26.5t37.5 53.5t42 55.5t26.5 34.5q-33 55 -51 123q-51 10 -104.5 13t-100.5 20q-16 4 -16 18zM557 768q0 -49 18.5 -93t51 -77t77 -52.5 t93.5 -19.5t93 19.5t75.5 52.5t51 77t19.5 93t-19.5 92t-51 76t-75.5 51.5t-93 18.5t-93.5 -18.5t-77 -51.5t-51 -76t-18.5 -92z" /> |
|
58 |
<glyph unicode="" horiz-adv-x="1304" d="M0 1175.5v34.5v36t2 36q25 14 71 23.5t98 15.5t102.5 9t78.5 5q-8 82 11.5 128t59.5 68.5t98.5 29t131.5 6.5q55 0 109.5 -3t97.5 -20.5t68.5 -54.5t25.5 -105v-24t-2 -25q29 -2 79 -5t102.5 -9t99.5 -15.5t72 -23.5v-72v-69q-37 -20 -123 -32.5t-185.5 -19t-193.5 -7.5 t-150 -1q-55 0 -150 1t-194.5 7.5t-184.5 18.5t-122 33q-2 16 -2 34.5zM133 154v837q123 -16 244 -21t244 -5h32q129 2 258 6t258 20v-837q0 -63 -44 -108.5t-107 -45.5h-731q-63 0 -108.5 45t-45.5 109zM303 199q0 -16 10.5 -26.5t26.5 -10.5h39q16 0 27.5 10t11.5 27v614 q0 16 -11.5 27.5t-27.5 11.5h-39q-16 0 -26.5 -11.5t-10.5 -27.5v-614zM504 1384q0 -10 1 -22t3 -23q144 2 291 0q0 12 2 23.5t0 21.5v15q-35 10 -74 11t-74 1q-37 0 -75.5 -1t-73.5 -11v-15zM596 199q0 -16 10 -26.5t27 -10.5h39q16 0 27.5 10t11.5 27v614q0 16 -11.5 27.5 t-27.5 11.5h-39q-16 0 -26.5 -11.5t-10.5 -27.5v-614zM887 199q0 -16 11 -26.5t28 -10.5h39q16 0 27.5 10t11.5 27v614q0 16 -11.5 27.5t-27.5 11.5h-39q-16 0 -27.5 -11.5t-11.5 -27.5v-614z" /> |
|
59 |
<glyph unicode="" horiz-adv-x="1880" d="M0 809.5q2 15.5 14 26.5l867 710q27 20 59 21q33 0 59 -21l240 -196v102q0 16 11.5 27.5t27.5 11.5h223q16 0 26.5 -11.5t10.5 -27.5v-348l328 -268q12 -10 14 -25.5t-8 -28.5l-45 -53q-10 -14 -29 -14h-65q-16 0 -25 8l-743 608q-25 20 -50 0l-743 -608q-8 -8 -25 -8 h-65q-18 0 -29 14l-45 53q-10 12 -8 27.5zM266 76v622l674 553l674 -553v-622q0 -33 -21.5 -54.5t-54.5 -21.5h-422v498h-352v-498h-422q-33 0 -54.5 21.5t-21.5 54.5z" /> |
|
60 |
<glyph unicode="" horiz-adv-x="1228" d="M0 78v1382q0 31 22.5 53.5t55.5 22.5h614q33 0 71 -16.5t60 -38.5l351 -351q23 -23 39 -60.5t16 -70.5v-921q0 -33 -22.5 -55.5t-53.5 -22.5h-1075q-33 0 -55.5 22.5t-22.5 55.5zM154 154h921v692h-459q-31 0 -53 22.5t-22 55.5v458h-387v-1228zM268 326v116h693v-116 h-693zM268 596v115h693v-115h-693zM694 999h381q0 4 -4 13.5t-6 11.5l-350 348q-2 4 -9.5 6t-11.5 4v-383z" /> |
|
61 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM635 608v465q0 33 23.5 56.5t56.5 23.5h80q35 0 57 -23.5t22 -56.5v-305h201q33 0 56.5 -23.5t23.5 -56.5v-80q0 -33 -23.5 -56.5t-56.5 -23.5h-360q-33 0 -56.5 23.5 t-23.5 56.5z" /> |
|
62 |
<glyph unicode="" d="M2 35l594 1466q6 14 21.5 24.5t31.5 10.5h195l-8 -170h172l-9 170h195q16 0 31.5 -10t21.5 -25l594 -1466q6 -14 -1 -24.5t-23 -10.5h-740l-26 512h-258l-27 -512h-739q-16 0 -23.5 10t-1.5 25zM807 797h229l-20 413h-189z" /> |
|
63 |
<glyph unicode="" d="M0 39v614q0 16 11.5 27.5t27.5 11.5h229q16 0 27.5 -11t11.5 -28v-346h1229v346q0 16 11.5 27.5t27.5 11.5h229q16 0 27.5 -11t11.5 -28v-614q0 -39 -39 -39h-1765q-39 0 -39 39zM345.5 944.5q6.5 16.5 39.5 16.5h307v499q0 31 21.5 53.5t54.5 22.5h307q33 0 55.5 -22.5 t22.5 -53.5v-499h307q31 0 37 -16.5t-16 -39.5l-504 -506q-23 -23 -55.5 -22.5t-55.5 22.5l-504 506q-23 23 -16.5 39.5z" /> |
|
64 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM414 743q10 25 37 25h208v358q0 16 11.5 28.5t27.5 12.5h201q16 0 27.5 -12t11.5 -29v-358h209q27 0 37 -25t-10 -43l-347 -346q-14 -10 -28 -10t-29 10l-346 346 q-20 18 -10 43z" /> |
|
65 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177 120t-218 44t-218.5 -44t-177 -120t-119.5 -177t-44 -218zM414 793q-10 25 10 43l346 346q14 10 29 10q14 0 28 -10l347 -346q20 -18 10 -43t-37 -25h-209v-360q0 -16 -11.5 -27.5t-27.5 -11.5h-201q-16 0 -27.5 11t-11.5 28v360h-208 q-27 0 -37 25z" /> |
|
66 |
<glyph unicode="" d="M0 78v577q0 33 9 76t22 72l284 663q12 29 44 49.5t63 20.5h999q31 0 63 -20.5t44 -49.5l284 -663q12 -29 21.5 -72t9.5 -76v-577q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM238 694h387l114 -231h383l117 231h367q-2 4 -2 9.5t-2 9.5l-256 594 h-848l-256 -596q-2 -2 -2 -7.5t-2 -9.5z" /> |
|
67 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM582 453v628q0 18 16 29q20 8 31 0l545 -315q16 -6 16 -27q0 -20 -16 -27l-545 -315q-8 -4 -15 -4q-8 0 -16 4q-16 10 -16 27z" /> |
|
68 |
<glyph unicode="" horiz-adv-x="1591" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5q141 0 271 -48.5t239 -140.5l161 162q35 35 58.5 24.5t23.5 -57.5v-463q0 -33 -22 -55q-10 -10 -23.5 -16t-29.5 -6h-463q-47 0 -58.5 23.5t23.5 58.5l160 159q-72 57 -159 88t-181 31q-117 0 -218.5 -44t-177 -120 t-119.5 -177t-44 -218t44 -218t119.5 -177t177 -120t218.5 -44q104 0 198.5 37t169 101.5t123.5 153.5t64 191q0 16 14 27q14 10 31 8l157 -20q16 -4 26.5 -16.5t8.5 -28.5q-20 -147 -89.5 -274.5t-176 -220.5t-242 -145.5t-284.5 -52.5q-166 0 -311.5 62.5t-254 171 t-171 254t-62.5 311.5z" /> |
|
69 |
<glyph unicode="" horiz-adv-x="1916" d="M6 311l150 437q10 33 39 45t59 4l438 -150q45 -16 46 -40.5t-42 -47.5l-202 -100q53 -78 123.5 -134.5t160.5 -86.5q111 -37 221.5 -28t207 56t170 129t110.5 193q6 16 20.5 22t30.5 2l152 -51q16 -6 23 -20.5t1 -30.5q-53 -158 -159.5 -274.5t-243.5 -184t-296 -81 t-315 39.5q-135 47 -241.5 134t-179.5 208l-205 -100q-43 -23 -63.5 -5.5t-4.5 64.5zM203 1024q53 156 159.5 273.5t243.5 185t295 81t316 -39.5q133 -47 240.5 -134t180.5 -208l205 100q43 23 63.5 5.5t4.5 -62.5l-150 -439q-10 -33 -39 -45t-59 -4l-438 150 q-45 16 -46 40.5t40 47.5l202 100q-51 78 -122.5 134.5t-159.5 86.5q-111 37 -221.5 28t-207 -56t-170 -129t-110.5 -193q-6 -16 -20.5 -22t-30.5 -2l-152 51q-16 6 -23 20.5t-1 30.5z" /> |
|
70 |
<glyph unicode="" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h1536v1075h-1536v-1075zM307 346v76q0 39 39 39h154q16 0 27.5 -11.5t11.5 -27.5v-76q0 -16 -11.5 -27.5t-27.5 -11.5h-154q-39 0 -39 39 zM307 653v76q0 39 39 39h154q16 0 27.5 -11.5t11.5 -27.5v-76q0 -16 -11.5 -27.5t-27.5 -11.5h-154q-39 0 -39 39zM307 961v75q0 39 39 39h154q16 0 27.5 -11t11.5 -28v-75q0 -16 -11.5 -27.5t-27.5 -11.5h-154q-39 0 -39 39zM692 346v76q0 16 10.5 27.5t26.5 11.5h768 q39 0 39 -39v-76q0 -39 -39 -39h-768q-16 0 -26.5 11.5t-10.5 27.5zM692 653v76q0 16 10.5 27.5t26.5 11.5h768q39 0 39 -39v-76q0 -39 -39 -39h-768q-16 0 -26.5 11.5t-10.5 27.5zM692 961v75q0 16 10.5 27.5t26.5 11.5h768q39 0 39 -39v-75q0 -39 -39 -39h-768 q-16 0 -26.5 11t-10.5 28z" /> |
|
71 |
<glyph unicode="" horiz-adv-x="1253" d="M0 117v626q0 39 21.5 69t56.5 42v164q0 113 43 213t117.5 175t175 118t213.5 43t213 -43t175 -118t118 -175.5t43 -212.5v-164q35 -12 56 -42t21 -69v-626q0 -47 -34.5 -82t-81.5 -35h-1020q-47 0 -82 35t-35 82zM313 862h627v156q0 66 -24.5 123t-67.5 99t-100.5 66.5 t-120.5 24.5q-66 0 -122 -24.5t-99.5 -66.5t-68 -99.5t-24.5 -122.5v-156zM494 164h266l-66 285q29 18 47.5 48.5t18.5 65.5q0 55 -39 95t-94 40t-94 -40t-39 -95q0 -35 18 -65.5t47 -46.5z" /> |
|
72 |
<glyph unicode="" d="M0 1382q0 63 45 108.5t109 45.5q63 0 108 -45.5t45 -108.5q0 -41 -20.5 -74.5t-55.5 -56.5v-1212q0 -16 -11 -27.5t-27 -11.5h-78q-16 0 -26.5 11.5t-10.5 27.5v1212q-35 23 -56.5 56.5t-21.5 74.5zM307 416v745q0 33 19.5 66t48.5 49q104 55 188 86t144 45q70 16 124 18 q68 0 124.5 -11t107.5 -29.5t99 -43t100 -51.5q63 -29 145 -33q70 -4 164 15.5t207 87.5q29 16 47 6t18 -43v-748q0 -31 -18.5 -64.5t-46.5 -49.5q-113 -68 -207 -87.5t-164 -15.5q-82 4 -145 33q-51 27 -99.5 51.5t-99.5 43t-107.5 29.5t-124.5 11q-55 -2 -124 -18 q-59 -14 -143.5 -45t-188.5 -88q-29 -16 -48.5 -4t-19.5 45z" /> |
|
73 |
<glyph unicode="" horiz-adv-x="1916" d="M0 729q0 172 85 324.5t221 266.5t307 180.5t345 66.5t345.5 -66.5t307.5 -180.5t221 -266.5t85 -326.5q0 -182 -78 -350l-27 -60l-174 -26q-27 -104 -110.5 -173t-196.5 -69v-41q0 -16 -12 -27.5t-29 -11.5h-80q-16 0 -27.5 11.5t-11.5 27.5v719q0 16 11.5 28.5 t27.5 12.5h80q16 0 28.5 -12.5t12.5 -28.5v-39q88 0 161 -44t114 -116l39 7q33 90 32 192q0 125 -65.5 233.5t-170 190.5t-232.5 129t-251 47t-250.5 -47t-232 -128t-170 -190.5t-65.5 -232.5q0 -104 32 -194l39 -7q41 72 114 116t161 44v39q0 16 12 28.5t29 12.5h80 q16 0 27 -12.5t11 -28.5v-719q0 -16 -11 -27.5t-27 -11.5h-80q-16 0 -28.5 11.5t-12.5 27.5v41q-55 0 -106.5 18.5t-91.5 50.5t-68.5 76t-40.5 97l-175 26l-26 60q-78 168 -78 352z" /> |
|
74 |
<glyph unicode="" horiz-adv-x="905" d="M0 578v380q0 16 11.5 27.5t27.5 11.5h420l325 326q49 51 84 37t35 -86v-1012q0 -72 -34.5 -86t-84.5 37l-325 326h-420q-16 0 -27.5 11t-11.5 28z" /> |
|
75 |
<glyph unicode="" horiz-adv-x="1277" d="M0 578v380q0 16 11.5 27.5t27.5 11.5h420l325 326q49 51 84 37t35 -86v-1012q0 -72 -34.5 -86t-84.5 37l-325 326h-420q-16 0 -27.5 11t-11.5 28zM1027 406q-9 32 7 61q84 145 84 301t-84 301q-16 29 -7 61t38 48t60.5 8t48.5 -37q104 -182 104 -381q0 -201 -104 -381 q-23 -41 -70 -41q-20 0 -39 12q-29 16 -38 48z" /> |
|
76 |
<glyph unicode="" horiz-adv-x="1916" d="M0 578v380q0 16 11.5 27.5t27.5 11.5h420l325 326q49 51 84 37t35 -86v-1012q0 -72 -34.5 -86t-84.5 37l-325 326h-420q-16 0 -27.5 11t-11.5 28zM1027 406q-9 32 7 61q84 145 84 301t-84 301q-16 29 -7 61t38 48t60.5 8t48.5 -37q104 -182 104 -381q0 -201 -104 -381 q-23 -41 -70 -41q-20 0 -39 12q-29 16 -38 48zM1285 219q-7 33 11 62q141 225 142 487q0 262 -142 487q-18 29 -11 62t36 49q29 18 61 11t50 -36q82 -131 123.5 -275t41.5 -298q0 -309 -167 -573q-10 -18 -29 -27.5t-37 -9.5q-25 0 -43 12q-29 16 -36 49zM1540 33 q-6 33 12 59q100 154 152.5 325t52.5 351t-52 351t-153 323q-18 29 -12 61.5t35 50.5q29 16 61 10.5t50 -32.5q115 -174 173 -366.5t58 -397.5t-58.5 -397.5t-172.5 -364.5q-10 -18 -29 -27.5t-37 -9.5q-25 0 -45 13q-29 18 -35 51z" /> |
|
77 |
<glyph unicode="" horiz-adv-x="1536" d="M0 0v698h698v-698h-698zM0 838v698h698v-698h-698zM139 139h420v420h-420v-420zM139 977h420v420h-420v-420zM279 279v141h141v-141h-141zM279 1116v139h141v-139h-141zM838 0v698h417v-139h142v139h139v-419h-420v139h-139v-418h-139zM838 838v698h698v-698h-698z M977 977h420v420h-420v-420zM1116 0v139h139v-139h-139zM1116 1116v139h139v-139h-139zM1397 0v139h139v-139h-139z" /> |
|
78 |
<glyph unicode="" d="M0 0v1536h154v-1536h-154zM227 0v1536h37v-1536h-37zM356 0v1536h117v-1536h-117zM545 0v1536h78v-1536h-78zM715 0v1536h76v-1536h-76zM903 0v1536h37v-1536h-37zM1014 0v1536h153v-1536h-153zM1221 0v1536h77v-1536h-77zM1409 0v1536h39v-1536h-39zM1579 0v1536h37 v-1536h-37zM1690 0v1536h153v-1536h-153z" /> |
|
79 |
<glyph unicode="" horiz-adv-x="1488" d="M0 961v454q0 49 35 85t86 36h454q51 0 113 -24.5t94 -61.5l672 -748q33 -39 34 -88t-34 -84l-526 -526q-35 -35 -86 -36t-86 36l-670 750q-35 37 -60.5 96t-25.5 111zM197 1223q0 -49 33.5 -83t82.5 -34t83 34t34 83t-34 82.5t-83 33.5t-82.5 -33.5t-33.5 -82.5z" /> |
|
80 |
<glyph unicode="" horiz-adv-x="1875" d="M0 961v454q0 49 35 85t86 36h454q25 0 53.5 -6t57.5 -18.5t54.5 -28t41.5 -33.5l670 -748q33 -37 34 -86t-34 -84l-526 -524q-35 -35 -86.5 -37t-83.5 37l-670 746q-35 39 -60.5 98t-25.5 109zM195 1223q0 -47 34.5 -82t83.5 -35q47 0 82 35t35 82q0 49 -35 83.5 t-82 34.5q-49 0 -83.5 -34.5t-34.5 -83.5zM791 1534h174q51 0 112.5 -24.5t93.5 -61.5l670 -748q35 -37 35 -87t-35 -85l-524 -524q-35 -35 -86 -36t-86 36l-12 14l514 514q35 35 34.5 84.5t-34.5 85.5l-670 748q-31 35 -84 56.5t-102 27.5z" /> |
|
81 |
<glyph unicode="" horiz-adv-x="1710" d="M10 311q2 16 4 31.5t4 34.5q0 10 -4 20.5t-2 20.5q2 16 15.5 31.5t25.5 35.5q23 37 45.5 90.5t32.5 92.5q4 16 -1 30.5t-1 26.5q4 16 16.5 27.5t20.5 23.5q10 18 21.5 42t21.5 49.5t16 50t8 40.5t-2 33t0 29q6 16 20.5 26.5t24.5 24.5q10 12 21.5 34.5t23 49.5t19.5 52.5 t10 45.5q2 12 -4 24.5t-2 27.5q4 14 18.5 29.5t26.5 31.5q16 25 28.5 58.5t30 61t46 43t77.5 1.5l-2 -4q31 10 54 10h780q78 0 119 -57q41 -53 18 -129l-283 -906q-18 -63 -77.5 -107t-126.5 -44h-893q-10 0 -20.5 -2t-18.5 -12q-12 -20 0 -56q16 -43 60 -75.5t87 -32.5h946 q29 0 57.5 21.5t37.5 47.5l309 987q4 16 5 29.5t-1 28.5q41 -14 61 -43q41 -53 19 -129l-283 -905q-18 -66 -77.5 -109t-127.5 -43h-946q-41 0 -79.5 14.5t-73.5 39t-61.5 58t-41.5 72.5q-25 68 -2 127zM500 961q-10 -39 26 -39h615q16 0 30.5 11t18.5 28l24 75 q4 16 -3 27.5t-23 11.5h-615q-16 0 -31.5 -11t-19.5 -28zM569 1190q-4 -16 3.5 -26.5t23.5 -10.5h614q16 0 30.5 10.5t21.5 26.5l22 78q4 16 -3 27.5t-24 11.5h-614q-16 0 -30.5 -11.5t-20.5 -27.5z" /> |
|
82 |
<glyph unicode="" horiz-adv-x="1253" d="M0 84v1337q0 47 34 81t81 34h1024q47 0 80.5 -34t33.5 -81v-1337q0 -47 -33.5 -81t-80.5 -34t-80 33l-432 432l-432 -432q-33 -33 -80 -33t-81 34t-34 81z" /> |
|
83 |
<glyph unicode="" d="M0 39v346q0 47 18.5 89t50 73t73.5 49t89 18h1383q47 0 89 -18t72.5 -49t49 -73t18.5 -89v-346q0 -39 -39 -39h-1765q-39 0 -39 39zM268 193q0 -16 11.5 -26.5t27.5 -10.5h1229q16 0 27.5 10t11.5 27v38q0 16 -11.5 27.5t-27.5 11.5h-1229q-16 0 -27.5 -11t-11.5 -28v-38 zM307 729v731q0 31 22.5 53.5t55.5 22.5h651v-383q0 -49 34 -83t81 -34h385v-307h-1229zM1151 1153v383l385 -383h-385z" /> |
|
84 |
<glyph unicode="" d="M0 115v1075q0 47 34 82t81 35h366l58 125q18 43 66 73.5t95 30.5h443q47 0 95 -30.5t67 -73.5l57 -125h367q47 0 80.5 -35t33.5 -82v-1075q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM442 653q0 -100 38 -187t102.5 -152.5t153 -103.5t186.5 -38t186 38 t152.5 103.5t102.5 152.5t38 187q0 98 -38 186.5t-102.5 153t-152.5 102.5t-186 38t-186.5 -38t-153 -102.5t-102.5 -152.5t-38 -187zM596 653q0 68 25.5 127.5t69.5 103.5t103.5 69.5t127.5 25.5t127 -25.5t103 -69.5t69.5 -103.5t25.5 -127.5t-25.5 -127t-69.5 -104 t-103.5 -70.5t-126.5 -25.5q-68 0 -127.5 25.5t-103.5 70.5t-69.5 104.5t-25.5 126.5z" /> |
|
85 |
<glyph unicode="" horiz-adv-x="1644" d="M0 0l2 80q10 4 29.5 8t48.5 8q92 18 108 33q16 10 50 68l233 614l277 725h73h53l11 -20l202 -482q33 -78 64 -151.5t59 -145.5q29 -72 52.5 -130t42.5 -103q12 -29 28.5 -70t36.5 -94q23 -66 64 -150q25 -49 34 -57q20 -18 68 -24q25 -2 49.5 -9.5t52.5 -17.5 q6 -37 7 -55v-10.5t-3 -16.5q-43 0 -90 2t-98 6q-53 4 -99 6t-87 2h-80t-53 -2l-199 -10l-57 -2q0 20 1 39.5t3 38.5l129 26q57 14 67 25q12 8 13 27q0 14 -7 30l-47 115l-90 227l-446 2q-12 -29 -37 -96t-66 -178q-23 -63 -22 -84q0 -27 16 -43q14 -10 40 -17.5t63 -13.5 q14 -4 84 -12v-59q0 -16 -2 -27q-35 0 -121 5t-224 16l-49 -9q-43 -8 -83 -11t-81 -3h-20zM549 655q135 -2 216 -4t105 0l29 2q-18 51 -40.5 111.5t-51.5 130.5t-51.5 122t-38.5 87z" /> |
|
86 |
<glyph unicode="" horiz-adv-x="1419" d="M0 0l2 94q27 6 68 12q39 6 69.5 13.5t55.5 17.5q8 14 13 26.5t7 24.5q6 33 8 81t2 112l-2 498q-2 39 -3 139t-5 266q-4 88 -12 109q-4 8 -13 10q-20 14 -69 16q-23 0 -115 13l-4 84l262 6l383 12h45q8 2 15.5 2h13.5t21.5 -1t39.5 -1h76q92 0 193 -27q18 -4 42.5 -13 t53.5 -26q63 -31 104 -75q45 -47 66 -105q10 -29 15 -58.5t5 -62.5q0 -72 -32 -129q-31 -57 -95 -104q-16 -12 -54 -30.5t-97 -47.5q178 -41 268 -145q92 -104 92 -236q0 -72 -28 -162q-23 -66 -72 -116q-66 -72 -141 -109q-78 -35 -205 -59q-70 -12 -199 -11l-199 5 q-63 2 -138 -2.5t-163 -10.5q-25 -2 -93 -4t-181 -6zM537 1419q0 -12 1 -31.5t3 -44.5q2 -51 4 -119.5t0 -158.5v-98v-78q25 -4 52.5 -6t57.5 -2q176 0 267 65q90 66 90 225q0 113 -86 187q-84 76 -258 76q-53 0 -131 -15zM545 457l4 -271q0 -16 10 -43q74 -33 141 -32 q131 0 220 41q82 39 122 112q18 37 28.5 82t10.5 100q0 113 -43 181q-59 94 -141 125q-80 33 -250 32q-37 0 -61.5 -3t-40.5 -7v-143v-174z" /> |
|
87 |
<glyph unicode="" horiz-adv-x="1054" d="M0 0l18 84q12 4 32 9t46 11q41 10 71 19.5t50 19.5q29 39 41 103l29 137l57 268l12 64q23 119 41.5 178t18.5 63l30 156l17 64l22 135l9 49v39q-45 23 -148 28q-14 0 -23.5 1.5t-17.5 1.5l21 104l325 -14q31 -2 49.5 -2h26.5q35 0 89 2t132 6q41 4 68.5 6t38.5 2 q-2 -10 -3 -19.5t-3 -19.5q-4 -10 -7.5 -22.5t-7.5 -28.5q-49 -16 -110 -31q-66 -16 -105 -31q-12 -33 -24 -88q-6 -25 -9.5 -45t-5.5 -37q-23 -100 -40 -175.5t-27 -129.5l-64 -311l-39 -158l-43 -235l-14 -45v-10.5t2 -16.5q35 -8 64.5 -13t58.5 -9q4 0 21.5 -2.5 l45.5 -6.5q-2 -18 -3 -32.5t-3 -26.5q-2 -6 -4 -16.5t-6 -22.5q-8 0 -14 -1t-10 -1q-18 -2 -28.5 -2h-14.5h-11.5t-17.5 4q-8 0 -45 4t-105 12l-202 2q-61 0 -181 -12q-39 -4 -63.5 -6t-36.5 -2z" /> |
|
88 |
<glyph unicode="" d="M0 1151q14 37 34.5 110.5t45.5 184.5q8 33 13 54.5t9 31.5h58q4 -6 6 -10t4 -9q29 -57 41 -71q16 -4 129 -4q35 0 66.5 1t60.5 1l20 2l113 2l213 -2h289l55 10q10 8 27 53q2 6 4 12.5t6 16.5l43 2h10.5t16.5 -2q2 -39 1 -97.5t1 -138.5v-100v-57q0 -14 -1 -27.5t-3 -23.5 q-20 -8 -37 -11.5t-31 -7.5q-27 51 -53 129q-29 82 -37 92q-12 14 -27 21q-10 4 -60 4h-138h-31t-35 -4q-6 -43 -6 -72l2 -151v-334l2 -359v-147q0 -72 10 -117q8 -4 21.5 -8t34.5 -8q4 0 21 -4t50 -13q27 -10 49 -18q4 -20 4 -33.5v-17.5v-11.5t-2 -17.5h-34q-47 0 -88 2 t-76 6t-95.5 6t-148.5 2q-16 0 -57 -4t-109 -10q-29 -2 -45 -3t-24 -1q0 10 -1.5 16.5t-1.5 10.5l-2 24v10q18 31 80 50q94 27 135 49q4 10 6.5 25.5t4.5 31.5q4 68 6 176.5t0 255.5l-4 428q-2 90 -2 142.5t-4 72.5q0 8 -7 15q-4 6 -12 6q-16 4 -63 4h-127q-90 0 -119 -21 q-41 -29 -121 -153q-23 -35 -35 -35q-23 12 -36 23.5t-19 19.5zM1383 1305.5q-5 13.5 14 33.5l184 185q14 12 33 12q14 0 31 -12l184 -185q18 -20 13 -33.5t-34 -13.5h-118v-1048h118q29 0 34 -13.5t-13 -31.5l-184 -187q-16 -12 -33 -12q-16 0 -31 12l-184 187 q-18 18 -13 31.5t31 13.5h121v1048h-121q-27 0 -32 13.5z" /> |
|
89 |
<glyph unicode="" horiz-adv-x="1536" d="M0 233q0 18 12 31l187 185q18 20 31.5 14t13.5 -33v-121h1048v121q0 27 13.5 33t33.5 -14l185 -185q12 -12 12 -31q0 -18 -12 -30l-185 -187q-20 -18 -33.5 -13t-13.5 34v119h-1048v-119q0 -29 -13.5 -34t-31.5 13l-187 187q-12 12 -12 30zM0 1233q14 29 33.5 87 t44.5 146q6 27 11 43.5t9 26.5h56q8 -12 10 -14q27 -47 37 -58q2 0 35.5 -1t77.5 -1h90.5h74.5h123l19 2h108h203h416l53 6q12 10 24 46l4.5 9l6.5 13h39h28v-188v-80v-45q0 -12 -1 -21.5t-3 -19.5q-33 -10 -63 -15q-25 37 -52 103q-27 59 -34 74q-12 10 -27 14q-6 2 -42 3 t-85 1h-103.5h-97.5h-28.5t-34.5 -2q-2 -18 -3 -32.5t-1 -24.5l4 -445l-2 -119q0 -61 12 -92q12 -6 53 -12q4 0 20.5 -4t45.5 -10q14 -4 26.5 -7.5t22.5 -7.5q2 -16 3 -25.5t1 -13.5t-1 -10t-1 -14h-33q-94 0 -157 6q-66 6 -236 6q-14 0 -53 -3t-105 -7q-27 -2 -43 -3 t-24 -1q0 16 -2 20v21v8q20 27 73 39q90 20 132 41q4 8 6 19t4 26q0 18 1 70.5t1 120t-1 142t-2 139t-2 107.5t-1 47q0 8 -6 13q-2 2 -13 6q-14 2 -59 2h-123q-20 0 -62 -1t-85 -2t-78 -4t-41 -7q-41 -25 -117 -123q-20 -29 -33 -29q-23 10 -35 19.5t-18 15.5z" /> |
|
90 |
<glyph unicode="" d="M0 78v115q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM0 500v114q0 33 22.5 55.5t55.5 22.5h1075q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1075 q-33 0 -55.5 22.5t-22.5 55.5zM0 922v114q0 33 22.5 55.5t55.5 22.5h1536q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1536q-33 0 -55.5 21.5t-22.5 54.5zM0 1343v117q0 31 22.5 53.5t55.5 22.5h921q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53 t-53.5 -22h-921q-33 0 -55.5 22.5t-22.5 52.5z" /> |
|
91 |
<glyph unicode="" d="M0 78v115q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM78 922v114q0 33 21.5 55.5t54.5 22.5h1536q33 0 55 -22.5t22 -55.5v-114q0 -33 -22.5 -54.5t-54.5 -21.5h-1536 q-33 0 -54.5 21.5t-21.5 54.5zM307 500v114q0 33 22.5 55.5t55.5 22.5h1075q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1075q-33 0 -55.5 22.5t-22.5 55.5zM385 1343v117q0 31 21.5 53.5t54.5 22.5h921q33 0 55.5 -22.5t22.5 -53.5v-117 q0 -31 -22.5 -53t-55.5 -22h-921q-33 0 -54.5 22.5t-21.5 52.5z" /> |
|
92 |
<glyph unicode="" d="M0 78v115q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM154 922v114q0 33 22.5 55.5t54.5 22.5h1536q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1536 q-33 0 -55 21.5t-22 54.5zM614 500v114q0 33 22.5 55.5t55.5 22.5h1075q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1075q-33 0 -55.5 22.5t-22.5 55.5zM768 1343v117q0 31 22.5 53.5t55.5 22.5h921q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53 t-53.5 -22h-921q-33 0 -55.5 22.5t-22.5 52.5z" /> |
|
93 |
<glyph unicode="" d="M0 78v115q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM0 500v114q0 33 22.5 55.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1689 q-33 0 -55.5 22.5t-22.5 55.5zM0 922v114q0 33 22.5 55.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1689q-33 0 -55.5 21.5t-22.5 54.5zM0 1343v117q0 31 22.5 53.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -53.5v-117 q0 -31 -22.5 -53t-53.5 -22h-1689q-33 0 -55.5 22.5t-22.5 52.5z" /> |
|
94 |
<glyph unicode="" d="M0 78v115q0 31 22.5 53t55.5 22h153q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-153q-33 0 -55.5 22.5t-22.5 55.5zM0 500v114q0 33 22.5 55.5t55.5 22.5h153q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-153 q-33 0 -55.5 22.5t-22.5 55.5zM0 922v114q0 33 22.5 55.5t55.5 22.5h153q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-153q-33 0 -55.5 21.5t-22.5 54.5zM0 1343v117q0 31 22.5 53.5t55.5 22.5h153q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53 t-53.5 -22h-153q-33 0 -55.5 22.5t-22.5 52.5zM461 78v115q0 31 22.5 53t55.5 22h1228q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1228q-33 0 -55.5 22.5t-22.5 55.5zM461 500v114q0 33 22.5 55.5t55.5 22.5h1228q31 0 53.5 -22.5t22.5 -55.5v-114 q0 -33 -22.5 -55.5t-53.5 -22.5h-1228q-33 0 -55.5 22.5t-22.5 55.5zM461 922v114q0 33 22.5 55.5t55.5 22.5h1228q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1228q-33 0 -55.5 21.5t-22.5 54.5zM461 1343v117q0 31 22.5 53.5t55.5 22.5h1228 q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53t-53.5 -22h-1228q-33 0 -55.5 22.5t-22.5 52.5z" /> |
|
95 |
<glyph unicode="" d="M0 756v75q0 39 39 39h213v154q0 31 16.5 37t38.5 -17l215 -215q16 -16 17 -36q0 -18 -17 -35l-215 -215q-23 -23 -39 -17t-16 39v152h-213q-39 0 -39 39zM614 39v1458q0 39 39 39h76q39 0 39 -39v-1458q0 -39 -39 -39h-76q-39 0 -39 39zM922 78v115q0 31 22.5 53t54.5 22 h768q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-768q-33 0 -55 22.5t-22 55.5zM922 500v114q0 33 22.5 55.5t54.5 22.5h615q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-615q-33 0 -55 22.5t-22 55.5zM922 922v114 q0 33 22.5 55.5t54.5 22.5h691q33 0 55 -22.5t22 -55.5v-114q0 -33 -22.5 -54.5t-54.5 -21.5h-691q-33 0 -55 21.5t-22 54.5zM922 1343v117q0 31 22.5 53.5t54.5 22.5h537q33 0 55.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53t-55.5 -22h-537q-33 0 -55 22.5t-22 52.5z" /> |
|
96 |
<glyph unicode="" d="M0 78v115q0 31 22.5 53t53.5 22h768q33 0 55.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-55.5 -22.5h-768q-31 0 -53.5 22.5t-22.5 55.5zM0 500v114q0 33 22.5 55.5t53.5 22.5h614q33 0 55.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-55.5 -22.5h-614 q-31 0 -53.5 22.5t-22.5 55.5zM0 922v114q0 33 22.5 55.5t53.5 22.5h692q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-692q-31 0 -53.5 21.5t-22.5 54.5zM0 1343v117q0 31 22.5 53.5t53.5 22.5h538q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53 t-53.5 -22h-538q-31 0 -53.5 22.5t-22.5 52.5zM1075 39v1458q0 39 39 39h76q16 0 27.5 -11.5t11.5 -27.5v-1458q0 -16 -11.5 -27.5t-27.5 -11.5h-76q-39 0 -39 39zM1305 743q0 16 14 35l217 215q23 23 38 17t15 -39v-152h215q16 0 27.5 -11t11.5 -28v-75q0 -16 -11 -27.5 t-28 -11.5h-215v-154q0 -31 -15 -38t-38 15l-217 218q-14 18 -14 36z" /> |
|
97 |
<glyph unicode="" d="M0 324v768q0 47 18.5 89t50 72.5t73.5 49t89 18.5h768q47 0 89 -18.5t73 -49t49.5 -72.5t18.5 -89v-240l483 471q23 23 55 23q13 -1 29 -7q47 -20 47 -69v-1127q0 -49 -47 -69q-16 -6 -29 -6q-33 0 -55 22l-483 471v-237q0 -47 -18.5 -89t-49.5 -74t-72.5 -50.5 t-89.5 -18.5h-768q-47 0 -89 18.5t-73.5 50.5t-50 73.5t-18.5 89.5z" /> |
|
98 |
<glyph unicode="" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h1536v1228h-1536v-1228zM307 307v105l277 360l188 -156l354 537l410 -424v-422h-1229zM307 1073q0 66 45 111t111 45q63 0 108 -45 t45 -111q0 -63 -45 -108t-108 -45q-66 0 -111 45t-45 108z" /> |
|
99 |
<glyph unicode="" horiz-adv-x="1536" d="M0 0l137 418l867 866l280 -280l-866 -867zM287 407.5q0 -12.5 10 -22.5q8 -8 22 -8q12 0 21 8l690 690q20 20 0 43q-10 10 -22.5 10t-20.5 -10l-690 -688q-10 -10 -10 -22.5zM1102 1382l119 119q35 35 84 35t84 -35l57 -55l55 -57q35 -35 35 -84.5t-35 -83.5l-119 -119z " /> |
|
100 |
<glyph unicode="" horiz-adv-x="1128" d="M0 1001q0 117 44 220.5t121 180.5t180.5 121t219.5 44q117 0 219.5 -44t179 -121t120.5 -180.5t44 -220.5q0 -84 -24.5 -159.5t-65.5 -143.5l-379 -661q-41 -68 -95 -68t-93 68l-381 663q-41 68 -65.5 143t-24.5 158zM285 1001q0 -57 21.5 -108t60.5 -89t89 -59.5 t109 -21.5q57 0 108.5 21.5t89.5 59.5t59.5 89t21.5 108t-21.5 108.5t-59.5 90.5t-89 60.5t-109 21.5q-59 0 -109 -21.5t-89 -60.5t-60.5 -90t-21.5 -109z" /> |
|
101 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44v1118q-117 0 -218.5 -44 t-177 -120t-119.5 -177t-44 -218z" /> |
|
102 |
<glyph unicode="" horiz-adv-x="1130" d="M0 535q0 86 23.5 161.5t66.5 141.5q20 33 69.5 99.5t108 154.5t113.5 193.5t90 217.5q10 35 37 51.5t57 12.5q31 4 57.5 -12.5t36.5 -51.5q33 -113 89.5 -218t115 -193t107.5 -154.5t69 -99.5q43 -66 66.5 -141.5t23.5 -161.5q0 -117 -44 -220.5t-120.5 -180.5t-180 -121 t-220.5 -44t-220 44t-180 121t-121 180.5t-44 220.5zM248 410q0 -59 41 -100.5t100 -41.5t100 41t41 101q0 43 -22 75q-6 8 -18.5 24.5t-26.5 39t-28.5 48.5t-22.5 54q-4 20 -23 17q-18 4 -24 -17q-8 -29 -21.5 -54.5t-28 -48t-27 -38.5t-18.5 -25q-23 -33 -22 -75z" /> |
|
103 |
<glyph unicode="" d="M0 307v922q0 63 24.5 119.5t65.5 97.5t97.5 65.5t119.5 24.5h1075q4 0 10.5 -1t10.5 -1l-191 -191h-905q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h1075q47 0 81 33.5t34 80.5v445l193 192v-637q0 -63 -25 -118.5t-67 -97.5t-97 -66.5t-119 -24.5 h-1075q-63 0 -119.5 24.5t-97.5 66.5t-65.5 97.5t-24.5 118.5zM631 324l108 329l652 652l221 -222l-651 -651zM866 629q6 -8 17 -8q10 0 16 8l512 510q18 18 0 35q-18 16 -35 0l-510 -510q-18 -18 0 -35zM1501 1415l92 94q29 29 68 29t65 -29l46 -45l45 -45 q27 -29 27.5 -66.5t-27.5 -66.5l-95 -92z" /> |
|
104 |
<glyph unicode="" d="M0 307v922q0 63 24.5 119.5t65.5 97.5t97.5 65.5t119.5 24.5h836q-6 -31 -6 -63v-52q-164 -20 -310 -78h-520q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h1075q47 0 81 33.5t34 80.5v111q16 10 31.5 21.5t32.5 27.5l129 127v-287q0 -63 -25 -118.5 t-67 -97.5t-97 -66.5t-119 -24.5h-1075q-63 0 -119.5 24.5t-97.5 66.5t-65.5 97.5t-24.5 118.5zM385 388.5v37.5q0 166 56.5 312.5t173 256t293.5 173t419 65.5v231q0 57 28.5 69.5t69.5 -28.5l392 -391q27 -25 26 -65q0 -39 -26 -64l-392 -391q-41 -41 -69.5 -28.5 t-28.5 69.5v260q-207 0 -364.5 -43t-266 -116.5t-170 -174t-77.5 -215.5q-4 -27 -31 -27q-25 0 -29 27q-4 23 -4 42.5z" /> |
|
105 |
<glyph unicode="" d="M0 307v922q0 63 24.5 119.5t65.5 97.5t97.5 65.5t119.5 24.5h1075q27 0 52 -6l-187 -187h-940q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h1075q47 0 81 33.5t34 80.5v326l193 192v-518q0 -63 -25 -118.5t-67 -97.5t-97 -66.5t-119 -24.5h-1075 q-63 0 -119.5 24.5t-97.5 66.5t-65.5 97.5t-24.5 118.5zM385 966.5q0 32.5 23 55.5l98 98q23 23 55.5 23t54.5 -23l340 -340l654 656q23 23 56.5 22.5t55.5 -22.5l99 -99q23 -23 22.5 -55.5t-22.5 -54.5l-711 -711l-98 -98q-23 -23 -55.5 -23t-55.5 23l-100 98l-393 395 q-23 23 -23 55.5z" /> |
|
106 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 25 18 43l256 256q27 27 45.5 19.5t18.5 -46.5v-170h360v359h-172q-37 0 -45 18.5t19 44.5l256 256q18 18 43 19q25 0 43 -19l256 -256q27 -27 19.5 -45t-46.5 -18h-172v-359h361v170q0 39 18 46.5t45 -19.5l256 -256q18 -18 18 -43t-18 -43l-256 -256 q-27 -27 -45 -19.5t-18 46.5v176h-361v-365h172q39 0 47 -18.5t-20 -44.5l-256 -256q-18 -18 -43 -19q-25 0 -43 19l-256 256q-27 27 -20 45t46 18h172v365h-360v-176q0 -39 -18.5 -46.5t-45.5 19.5l-256 256q-18 18 -18 43z" /> |
|
107 |
<glyph unicode="" horiz-adv-x="1075" d="M0 76q0 -31 22.5 -53.5t53.5 -22.5h153q33 0 55.5 22.5t22.5 53.5v1382q0 33 -22.5 55.5t-55.5 22.5h-153q-31 0 -53.5 -22.5t-22.5 -55.5v-1382zM307.5 768q-0.5 27 16.5 43l653 707q14 18 41 18q6 0 22 -4q35 -18 35 -59v-1412q0 -41 -35 -57q-39 -14 -63 14l-653 705 q-16 18 -16.5 45z" /> |
|
108 |
<glyph unicode="" d="M0 76q0 -31 22.5 -53.5t53.5 -22.5h153q33 0 55.5 22.5t22.5 53.5v1382q0 33 -22.5 55.5t-55.5 22.5h-153q-31 0 -53.5 -22.5t-22.5 -55.5v-1382zM307.5 768q-0.5 27 16.5 43l653 707q14 18 41 18q6 0 22 -4q35 -18 35 -59v-1412q0 -41 -35 -57q-39 -14 -63 14l-653 705 q-16 18 -16.5 45zM1075.5 768q-0.5 27 16.5 43l653 707q14 18 41 18q6 0 22 -4q35 -18 35 -59v-1412q0 -41 -35 -57q-39 -14 -63 14l-653 705q-16 18 -16.5 45z" /> |
|
109 |
<glyph unicode="" horiz-adv-x="1536" d="M0 767q0 26 16 44l654 707q14 18 41 18q10 0 22 -6q35 -14 35 -57v-1412q0 -41 -35 -57q-37 -16 -63 14l-654 705q-16 18 -16 44zM768 767q0 26 16 44l654 707q14 18 41 18q10 0 22 -6q35 -14 35 -57v-1412q0 -41 -35 -57q-37 -16 -63 14l-654 705q-16 18 -16 44z" /> |
|
110 |
<glyph unicode="" horiz-adv-x="1349" d="M0 70v1396q0 39 35 60q37 23 69 0l1211 -697q35 -25 35 -61q0 -37 -35 -61l-1211 -697q-16 -10 -34 -10t-35 10q-35 20 -35 60z" /> |
|
111 |
<glyph unicode="" horiz-adv-x="1536" d="M0 70v1396q0 29 20.5 49.5t49.5 20.5h489q29 0 49.5 -20.5t20.5 -49.5v-1396q0 -29 -20.5 -49.5t-49.5 -20.5h-489q-29 0 -49.5 20.5t-20.5 49.5zM907 70v1396q0 29 20.5 49.5t49.5 20.5h489q29 0 49.5 -20.5t20.5 -49.5v-1396q0 -29 -20.5 -49.5t-49.5 -20.5h-489 q-29 0 -49.5 20.5t-20.5 49.5z" /> |
|
112 |
<glyph unicode="" horiz-adv-x="1536" d="M0 70v1396q0 29 20.5 49.5t49.5 20.5h1396q29 0 49.5 -20.5t20.5 -49.5v-1396q0 -29 -20.5 -49.5t-49.5 -20.5h-1396q-29 0 -49.5 20.5t-20.5 49.5z" /> |
|
113 |
<glyph unicode="" horiz-adv-x="1536" d="M0 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57zM768 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57z" /> |
|
114 |
<glyph unicode="" d="M0 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57zM768 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57zM1536 76 q0 -31 22.5 -53.5t53.5 -22.5h153q33 0 55.5 22.5t22.5 53.5v1382q0 33 -22.5 55.5t-55.5 22.5h-153q-31 0 -53.5 -22.5t-22.5 -55.5v-1382z" /> |
|
115 |
<glyph unicode="" horiz-adv-x="1075" d="M0 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57zM768 76q0 -31 22.5 -53.5t53.5 -22.5h153q33 0 55.5 22.5t22.5 53.5v1382q0 33 -22.5 55.5t-55.5 22.5h-153q-31 0 -53.5 -22.5t-22.5 -55.5 v-1382z" /> |
|
116 |
<glyph unicode="" horiz-adv-x="1536" d="M0 70v198q0 29 20.5 49.5t49.5 20.5h1396q29 0 49.5 -20.5t20.5 -49.5v-198q0 -29 -20.5 -49.5t-49.5 -20.5h-1396q-29 0 -49.5 20.5t-20.5 49.5zM6 594q-18 43 14 76l699 698q20 20 49 20.5t49 -20.5l699 -698q33 -33 14 -76q-16 -43 -64 -43h-1396q-47 0 -64 43z" /> |
|
117 |
<glyph unicode="" horiz-adv-x="964" d="M0 765q0 38 29 66l671 674q29 29 68 29t68 -29l100 -100q29 -29 29 -68t-29 -67l-508 -510l508 -500q29 -29 29 -66.5t-29 -66.5l-100 -102q-29 -29 -68 -29t-68 29l-671 673q-29 29 -29 67z" /> |
|
118 |
<glyph unicode="" horiz-adv-x="964" d="M0 194.5q0 38.5 29 67.5l508 508l-508 502q-29 29 -29 66.5t29 66.5l100 102q29 29 68 29t67 -29l672 -673q29 -29 29 -68t-29 -68l-672 -671q-29 -29 -67.5 -29t-67.5 29l-100 100q-29 29 -29 67.5z" /> |
|
119 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM338 688q0 -33 33 -33h313v-344q0 -33 33 -32h164q33 0 32 32v344h314 q12 0 22.5 9.5t10.5 23.5v158q0 14 -10.5 23.5t-22.5 9.5h-314v346q0 33 -32 32h-164q-33 0 -33 -32v-346h-313q-33 0 -33 -33v-158z" /> |
|
120 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM338 688q0 -33 33 -33h856q12 0 22.5 9.5t10.5 23.5v158q0 14 -10.5 23.5 t-22.5 9.5h-856q-33 0 -33 -33v-158z" /> |
|
121 |
<glyph unicode="" horiz-adv-x="1597" d="M0 770q0 154 58.5 301.5t174.5 263.5q117 117 264.5 175.5t301 58.5t301 -58.5t264.5 -175.5t175 -264t58 -301t-58 -301t-175 -264t-264.5 -175.5t-301 -58.5t-301 58.5t-264.5 175.5t-175 264t-58 301zM385 505q0 -13 10 -24l115 -116q10 -10 23.5 -10.5t23.5 10.5 l244 243l219 -221q10 -10 23.5 -10t23.5 10l113 113q23 23 0 47l-222 219l246 246q23 23 0 47l-117 115q-25 25 -47 0l-243 -244l-222 221q-10 10 -23 10t-24 -10l-110 -113q-25 -23 0 -47l219 -219l-242 -244q-10 -10 -10 -23z" /> |
|
122 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 718q0 -20 14 -34l319 -319q14 -14 38 -24.5t44 -10.5h56q20 0 43.5 10 t38.5 25l550 550q14 14 14.5 34t-14.5 34l-104 107q-16 14 -35.5 14t-34.5 -14l-452 -453q-14 -14 -33.5 -14t-34.5 14l-221 221q-14 14 -33.5 14t-36.5 -14l-104 -106q-14 -14 -14 -34z" /> |
|
123 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM532 1100l95 -115q4 -8 20 -12q12 0 23 6l10 8t27.5 17.5t39 16.5t46.5 7 q41 0 69.5 -22.5t28.5 -57.5q0 -37 -24.5 -64.5t-61.5 -60.5q-23 -18 -46.5 -40.5t-43 -51.5t-31.5 -63.5t-12 -79.5v-64q0 -12 9 -21t21 -9h164q12 0 20.5 9t8.5 21v51q0 39 25.5 66.5t62.5 60.5q25 20 49.5 46t46 57t34.5 69.5t13 90.5q0 68 -27.5 121t-73.5 87.5 t-103.5 53t-114.5 18.5q-63 0 -113.5 -16.5t-85.5 -35.5t-53 -35.5t-20 -18.5q-16 -16 -3 -39zM672 252q0 -12 9 -21.5t21 -9.5h164q12 0 20.5 9.5t8.5 21.5v156q0 12 -8 21t-21 9h-164q-12 0 -21 -9t-9 -21v-156z" /> |
|
124 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM573 858q0 -29 29 -29h86v-409h-78q-12 0 -21 -8.5t-9 -20.5v-139q0 -12 9 -21.5 t21 -9.5h402q12 0 20 9.5t8 21.5v139q0 29 -28 29h-78v577q0 12 -8 21.5t-21 9.5h-303q-12 0 -20.5 -9t-8.5 -22v-139zM686 1151q0 -12 9.5 -21.5t21.5 -9.5h188q12 0 20.5 9.5t8.5 21.5v166q0 29 -29 29h-188q-12 0 -21.5 -8.5t-9.5 -20.5v-166z" /> |
|
125 |
<glyph unicode="" horiz-adv-x="1536" d="M0 692v154q0 16 11.5 26.5t27.5 10.5h164q18 84 59 158.5t99.5 133t133 99.5t158.5 59v164q0 39 39 39h154q16 0 26.5 -11.5t10.5 -27.5v-164q84 -18 158.5 -59t133 -99.5t99.5 -133t59 -158.5h164q16 0 27.5 -10.5t11.5 -26.5v-154q0 -39 -39 -39h-164 q-18 -84 -59 -158.5t-99.5 -133t-133 -99.5t-158.5 -59v-164q0 -16 -10.5 -27.5t-26.5 -11.5h-154q-39 0 -39 39v164q-84 18 -158.5 59t-133 99.5t-99.5 133t-59 158.5h-164q-39 0 -39 39zM365 653q29 -106 105.5 -183t182.5 -105v174q0 16 11.5 26t27.5 10h154 q16 0 26.5 -10t10.5 -26v-174q106 29 183 105.5t105 182.5h-172q-39 0 -38 39v154q0 16 11 26.5t27 10.5h172q-29 106 -105.5 183t-182.5 105v-172q0 -16 -10.5 -27t-26.5 -11h-154q-39 0 -39 38v172q-106 -29 -183 -105.5t-105 -182.5h174q16 0 26 -10.5t10 -26.5v-154 q0 -16 -10 -27.5t-26 -11.5h-174z" /> |
|
126 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM451 573.5q0 16.5 12 28.5l166 166l-166 166q-12 12 -12 28.5t12 28.5l112 113q29 29 58 0l166 -166l166 166q29 29 57 0l113 -113q29 -29 0 -57l-166 -166l166 -166 q29 -29 0 -57l-113 -113q-12 -12 -28.5 -12t-28.5 12l-166 166l-166 -166q-12 -12 -28.5 -12t-29.5 12l-112 113q-12 12 -12 28.5z" /> |
|
127 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM332 717.5q0 17.5 10 27.5l115 115q10 10 27.5 10t27.5 -10l178 -180q29 -25 58 0l337 340q10 10 27.5 10t28.5 -10l114 -115q10 -10 10.5 -27.5t-10.5 -27.5l-409 -410 q-12 -12 -32.5 -20t-37.5 -8h-114q-16 0 -37 8t-33 20l-250 250q-10 10 -10 27.5z" /> |
|
128 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -84 23.5 -160t66.5 -141l770 770q-66 43 -141.5 66.5t-159.5 23.5 q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM498 297q66 -41 141.5 -64.5t159.5 -23.5q117 0 218 44t177 120t120 177t44 218q0 84 -23.5 160t-64.5 141z" /> |
|
129 |
<glyph unicode="" horiz-adv-x="1536" d="M0 768q0 39 29 68l671 673q29 29 68 29t68 -29l100 -100q29 -29 29 -67.5t-29 -67.5l-338 -338h842q41 0 68.5 -27.5t27.5 -68.5v-144q0 -39 -27.5 -66.5t-66.5 -27.5h-844l338 -338q29 -29 29 -67.5t-29 -67.5l-100 -100q-29 -29 -68 -29t-68 29l-671 671q-29 29 -29 68 z" /> |
|
130 |
<glyph unicode="" horiz-adv-x="1536" d="M0 698v144q0 39 27.5 66.5t66.5 27.5h844l-338 338q-29 29 -29 67.5t29 67.5l100 100q29 29 68 29t68 -29l671 -673q29 -29 29 -67t-29 -67l-671 -673q-29 -29 -68 -29t-68 29l-100 100q-29 29 -29 68t29 67l338 338h-844q-39 0 -66.5 27.5t-27.5 68.5z" /> |
|
131 |
<glyph unicode="" horiz-adv-x="1536" d="M-1 768q-1 39 28 68l673 671q29 29 68 29t68 -29l671 -671q29 -29 29 -68t-29 -68l-100 -100q-29 -29 -66.5 -29t-66.5 29l-340 338v-844q0 -39 -27.5 -66.5t-66.5 -27.5h-144q-41 0 -67.5 27.5t-26.5 66.5v844l-338 -338q-29 -29 -67.5 -29t-67.5 29l-100 100 q-29 29 -30 68z" /> |
|
132 |
<glyph unicode="" horiz-adv-x="1536" d="M0 766q0 39 29 68l100 100q29 29 68 29t67 -29l338 -338v844q0 39 27.5 66.5t66.5 27.5h144q41 0 67.5 -27.5t26.5 -66.5v-844l340 338q29 29 66.5 29t66.5 -29l102 -100q29 -29 29 -68t-29 -68l-673 -671q-29 -29 -68 -29t-68 29l-671 671q-29 29 -29 68z" /> |
|
133 |
<glyph unicode="" d="M0 135q0 209 71.5 393.5t218 322.5t371 219t531.5 83v293q0 72 36 87t89 -36l491 -493q35 -33 35 -82q0 -47 -35 -82l-491 -494q-51 -51 -88 -35.5t-37 86.5v330q-262 -2 -461 -56.5t-336 -147.5t-215 -219t-98 -271q-4 -33 -37 -33h-2q-33 0 -37 33q-6 51 -6 102z" /> |
|
134 |
<glyph unicode="" horiz-adv-x="1536" d="M0 86v522q0 53 26.5 64.5t65.5 -25.5l166 -166l274 275q12 12 31 12t33 -12l160 -160q12 -14 12 -32.5t-12 -31.5l-275 -274l166 -166q39 -39 27 -65.5t-66 -26.5h-520q-37 0 -61 25q-27 27 -27 61zM768 972.5q0 18.5 12 31.5l275 274l-166 166q-39 39 -27 65.5t66 26.5 h520q37 0 61 -25q27 -27 27 -61v-522q0 -53 -26.5 -64.5t-65.5 25.5l-166 166l-274 -273q-12 -14 -31 -14t-33 14l-160 158q-12 14 -12 32.5z" /> |
|
135 |
<glyph unicode="" horiz-adv-x="1536" d="M0 202.5q0 18.5 12 33.5l275 272l-166 166q-39 39 -27 65.5t66 26.5h520q38 0 61 -25q27 -27 27 -61v-522q0 -53 -26.5 -64.5t-65.5 27.5l-166 166l-274 -275q-12 -14 -31 -14t-33 14l-160 160q-12 12 -12 30.5zM768 854v522q0 53 26.5 64.5t65.5 -27.5l166 -166l274 275 q12 14 31 14t33 -14l160 -160q12 -12 12 -30.5t-12 -33.5l-275 -272l166 -166q39 -39 27 -65.5t-66 -26.5h-520q-41 0 -61 25q-27 27 -27 61z" /> |
|
136 |
<glyph unicode="" horiz-adv-x="1536" d="M0 696v144q0 39 27.5 66.5t66.5 27.5h508v506q0 41 26.5 68.5t67.5 27.5h144q39 0 66.5 -27.5t27.5 -66.5v-508h508q39 0 66.5 -27.5t27.5 -66.5v-144q0 -39 -27.5 -66.5t-66.5 -27.5h-508v-506q0 -41 -27.5 -68.5t-66.5 -27.5h-144q-39 0 -66.5 27.5t-27.5 66.5v508 h-506q-41 0 -68.5 26.5t-27.5 67.5z" /> |
|
137 |
<glyph unicode="" horiz-adv-x="1536" d="M0 696v144q0 39 27.5 66.5t66.5 27.5h1348q39 0 66.5 -27.5t27.5 -66.5v-144q0 -39 -27.5 -66.5t-66.5 -27.5h-1346q-41 0 -68.5 26.5t-27.5 67.5z" /> |
|
138 |
<glyph unicode="" horiz-adv-x="1427" d="M2 1018q-10 37 10 72l72 124q20 35 58 44.5t73 -9.5l332 -192v383q0 41 27.5 68.5t68.5 27.5h141q41 0 69 -27.5t28 -66.5v-385l331 192q35 18 73 9t58 -44l70 -124q20 -35 11 -72t-44 -57l-333 -193l333 -193q35 -20 44.5 -57t-9.5 -72l-72 -124q-20 -35 -58 -44.5 t-73 9.5l-331 192v-383q0 -41 -28 -68.5t-69 -27.5h-141q-41 0 -68.5 27.5t-27.5 66.5v385l-332 -192q-35 -20 -73 -10t-58 45l-72 124q-18 35 -9 72t44 57l334 193l-334 193q-35 20 -45 57z" /> |
|
139 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM672 1274l14 -739q4 -29 31 -29h162q12 0 21 8t9 21l17 739q0 10 -8 22q-8 8 -23 9 h-193q-14 0 -22 -9q-8 -12 -8 -22zM680 236q0 -12 8 -21.5t21 -9.5h180q12 0 21.5 9t9.5 22v174q0 12 -9.5 21t-21.5 9h-180q-12 0 -20.5 -9t-8.5 -21v-174z" /> |
|
140 |
<glyph unicode="" horiz-adv-x="1880" d="M0 588v391q0 16 11.5 27.5t27.5 11.5h539q-57 0 -107.5 21.5t-87.5 58.5t-58.5 87t-21.5 107t21.5 107.5t58.5 87.5t87 58.5t108 21.5q61 0 115.5 -24.5t88.5 -69.5l158 -203l158 203q35 45 89 69.5t116 24.5q57 0 107 -21.5t87 -58.5t58.5 -87t21.5 -108 q0 -57 -21.5 -107t-58.5 -87t-87 -58.5t-107 -21.5h538q16 0 27.5 -11.5t11.5 -27.5v-391q0 -16 -11 -27.5t-28 -11.5h-117v-432q0 -47 -34.5 -82t-83.5 -35h-1332q-49 0 -82.5 35t-33.5 82v432h-119q-16 0 -27.5 11t-11.5 28zM461 1292q0 -49 33.5 -82.5t83.5 -33.5h237 l-151 196q-10 10 -32 24.5t-54 14.5q-49 0 -83 -35t-34 -84zM743 221q0 -33 24 -56.5t56 -23.5h234q33 0 56.5 23.5t23.5 56.5v797h-394v-797zM1065 1176h238q49 0 82.5 33.5t33.5 82.5t-33.5 84t-82.5 35q-33 0 -54.5 -14.5t-31.5 -24.5z" /> |
|
141 |
<glyph unicode="" horiz-adv-x="1916" d="M6 135q20 53 56 89t71 65q29 23 50.5 43t27.5 43q2 6 0 12t-10 25q-6 12 -11.5 27.5t-9.5 35.5q-25 160 13 295t120 242.5t195 185.5t235 121q82 29 179.5 34t203.5 7q61 0 127 2t127.5 11t113.5 28.5t85 54.5q20 20 38.5 41t38 36t43 24.5t58.5 9.5q23 0 42.5 -11.5 t29.5 -31.5q66 -133 83 -281.5t-18 -322.5q-90 -487 -579 -740q-231 -123 -467 -123q-154 0 -307 54q-23 8 -45.5 20t-44.5 25q-29 16 -57.5 30.5t-49.5 14.5q-10 -2 -23.5 -17.5t-27.5 -35t-26.5 -41t-20.5 -33.5q-14 -23 -26.5 -41.5t-22.5 -32.5q-25 -31 -64 -31h-4 q-29 2 -49.5 12.5t-33.5 24.5t-20.5 28.5t-9.5 22.5q-27 37 -10 78zM401 507.5q2 -32.5 29 -54.5q20 -18 51 -19q37 0 62 27q90 102 181 175t191.5 117t212 62t242.5 14q33 -4 57.5 19.5t26.5 56.5q2 35 -20.5 58.5t-57.5 25.5q-147 6 -277 -16.5t-247 -73.5t-223.5 -133 t-206.5 -199q-23 -27 -21 -59.5z" /> |
|
142 |
<glyph unicode="" horiz-adv-x="1445" d="M0 442q0 123 63.5 254t174.5 238q10 16 33.5 13t31.5 -21q4 -16 0 -29q-8 -35 -14 -84t-4 -101.5t13 -101.5t38 -84q31 -37 78 -49q-49 154 -40 293t49 259t101.5 217t118.5 167t98 106.5t43 39.5q25 18 47 0q10 -8 13.5 -21.5t-0.5 -24.5q0 -2 -15.5 -42.5t-21.5 -102 t7 -134.5t71 -136q37 -43 67.5 -85t52 -93.5t34 -120t12.5 -162.5q0 -33 -31 -39q-12 -2 -24.5 4t-16.5 19q-14 31 -42 49t-63 18q-47 0 -79.5 -33.5t-32.5 -81.5q0 -121 156 -120q98 0 153 63q37 43 53.5 101.5t20.5 114.5t2 102.5t-4 62.5q-6 12 0 29q8 18 31.5 21 t35.5 -13q111 -106 173.5 -237.5t62.5 -254.5q0 -109 -51.5 -195.5t-145.5 -148t-228 -95.5t-298 -34t-298 34t-228.5 95.5t-145.5 148.5t-51 195z" /> |
|
143 |
<glyph unicode="" d="M0 722q0 44 25 83q78 125 178 224t216 168t242.5 104.5t260.5 35.5q135 0 262 -35.5t241.5 -103.5t215 -167t180.5 -226q23 -39 22.5 -83t-22.5 -81q-80 -127 -180.5 -226.5t-215 -167t-241.5 -103t-262 -35.5q-133 0 -260 35.5t-243 104t-216.5 168t-177.5 224.5 q-25 37 -25 81zM154 723q66 -104 149.5 -190.5t182 -145.5t208 -92t228.5 -33t228.5 33t207.5 92t182 145t150 191q-80 129 -187.5 226.5t-236.5 156.5q51 -59 79.5 -133t28.5 -160q0 -96 -35.5 -179t-99 -146.5t-147.5 -99.5t-179 -36q-96 0 -179 36t-146.5 99.5t-99 146.5 t-35.5 179q0 78 25.5 148.5t68.5 128.5q-117 -59 -217.5 -152.5t-175.5 -214.5zM614 813q0 -23 16.5 -40t41.5 -17t41 17.5t16 39.5q0 78 53.5 131t130.5 53q25 0 41.5 17.5t16.5 40.5q0 25 -16.5 41t-41.5 16q-61 0 -116.5 -23.5t-95 -63.5t-63.5 -95.5t-24 -116.5z" /> |
|
144 |
<glyph unicode="" d="M0 767q0 44 25 83q78 125 178 224.5t216 168t242.5 104t260.5 35.5q53 0 105 -7t103 -17l89 158q8 14 24 18q12 6 29 -2l133 -76q14 -8 19.5 -23.5t-3.5 -29.5l-774 -1383q-6 -14 -22 -18q-4 -2 -11 -2q-6 0 -18 4l-135 76q-14 8 -18.5 23.5t3.5 29.5l66 115 q-145 68 -269 178.5t-218 259.5q-25 37 -25 81zM154 768q82 -131 191.5 -229.5t240.5 -157.5l57 104q-86 63 -138 159.5t-52 213.5q0 78 25.5 148.5t68.5 130.5q-117 -61 -217.5 -153.5t-175.5 -215.5zM614 858q0 -23 16.5 -40t41.5 -17t41 17.5t16 39.5q0 78 53.5 131 t130.5 53q25 0 41.5 17.5t16.5 40.5q0 25 -16.5 41t-41.5 16q-61 0 -116.5 -23.5t-95 -63.5t-63.5 -95.5t-24 -116.5zM928 154l88 159q209 25 382 145t292 310q-109 170 -263 283l76 137q92 -66 172 -150t146 -188q23 -39 22.5 -83t-22.5 -81q-160 -254 -392.5 -392 t-500.5 -140zM1081 430l285 510q4 -20 6 -39.5t2 -42.5q0 -74 -21.5 -140.5t-60.5 -121.5t-93 -98t-118 -68z" /> |
|
145 |
<glyph unicode="" horiz-adv-x="1775" d="M0 92q0 20 6 39t17 35l768 1331q16 27 39.5 48.5t56.5 21.5t56.5 -21.5t39.5 -48.5l770 -1331q10 -16 16.5 -34.5t6.5 -39.5q0 -49 -38 -70.5t-81 -21.5h-1538q-43 0 -81 21.5t-38 70.5zM770 1114l12 -633q0 -14 10.5 -24.5t24.5 -10.5h139q14 0 24.5 10.5t10.5 24.5 l15 633q0 14 -10.5 24.5t-24.5 10.5h-166q-16 0 -25.5 -10.5t-9.5 -24.5zM776 168q0 -16 10.5 -25.5t24.5 -9.5h154q35 0 34 35v147q0 16 -9 26.5t-25 10.5h-154q-14 0 -24.5 -10t-10.5 -27v-147z" /> |
|
146 |
<glyph unicode="" horiz-adv-x="1597" d="M0 541v4q0 31 23 57l30 29q20 25 56 24q8 0 10 -2l280 -32q39 63 93.5 134.5t125.5 151.5l-583 457q-31 25 -31 59v4q0 31 23 58l57 57q27 23 57 23h13.5t13.5 -4l803 -293l151 149q70 70 161 110t167 40q72 0 109 -37q20 -18 28 -46t8 -63q0 -76 -38.5 -167t-110.5 -160 l-150 -152l293 -803q6 -12 6 -26q0 -33 -24 -58l-58 -57q-23 -25 -57 -25h-4q-35 4 -59 31l-455 586q-82 -72 -153.5 -126t-135.5 -93l35 -281v-10q0 -33 -22 -55l-31 -31q-23 -23 -58 -23h-4q-39 4 -59 31l-205 272l-274 207q-29 25 -31 60z" /> |
|
147 |
<glyph unicode="" horiz-adv-x="1566" d="M0 117v1147q0 47 35 81.5t82 34.5h39v13q0 31 10 62.5t32.5 56t59.5 40t90 15.5t90 -15.5t59.5 -40t33 -56.5t10.5 -62v-13h49v13q0 31 10 62.5t32.5 56t59.5 40t90 15.5t90 -15.5t60.5 -40t34 -56.5t10.5 -62v-13h49v13q0 31 10.5 62.5t33 56t59 40t90.5 15.5 q53 0 90 -15.5t59.5 -40t32.5 -56.5t10 -62v-13h39q47 0 82 -34.5t35 -81.5v-1147q0 -47 -35 -82t-82 -35h-1333q-47 0 -82 35t-35 82zM158 158h282v250h-282v-250zM158 446h282v252h-282v-252zM158 737h282v252h-282v-252zM272 1165q0 -57 76 -57t76 57v228q0 57 -76 57 t-76 -57v-228zM479 158h285v250h-285v-250zM479 446h285v252h-285v-252zM479 737h285v252h-285v-252zM709 1165q0 -31 16 -44t57 -13t58.5 13.5t17.5 43.5v228q0 29 -17.5 43t-58.5 14t-57 -14.5t-16 -42.5v-228zM803 158h284v250h-284v-250zM803 446h284v252h-284v-252z M803 737h284v252h-284v-252zM1126 158h283v250h-283v-250zM1126 446h283v252h-283v-252zM1126 737h283v252h-283v-252zM1143 1165q0 -57 76 -57t75 57v228q0 57 -75 57q-76 0 -76 -57v-228z" /> |
|
148 |
<glyph unicode="" d="M0 252v154q0 16 11.5 27t27.5 11h219q51 0 99.5 31t93.5 83t90 119.5t90 139.5q55 88 114.5 175t127 156t147.5 110.5t180 41.5h203v185q0 41 24.5 49t59.5 -21l334 -278q23 -18 22 -45q0 -29 -22 -47l-334 -277q-35 -29 -59.5 -20.5t-24.5 49.5v174h-203 q-53 0 -100 -31.5t-93 -84t-91.5 -120t-90.5 -139.5q-55 -88 -113.5 -174t-126 -154.5t-148.5 -110.5t-179 -42h-219q-16 0 -27.5 11.5t-11.5 27.5zM0 1108v154q0 39 39 38h219q68 0 127 -20t111.5 -56t97.5 -84t88 -104q-61 -90 -117 -178q-4 -8 -9 -14t-9 -15 q-70 102 -139.5 172t-149.5 70h-219q-16 0 -27.5 10.5t-11.5 26.5zM778 481q29 41 56.5 85t56.5 87q4 10 10 17.5t10 17.5q70 -102 139.5 -170.5t149.5 -68.5h203v190q0 41 24.5 49t59.5 -20l334 -277q23 -18 22 -47q0 -27 -22 -45l-334 -279q-35 -29 -59.5 -20.5 t-24.5 49.5v168h-203q-68 0 -127 20.5t-110.5 56.5t-97.5 84t-87 103z" /> |
|
149 |
<glyph unicode="" horiz-adv-x="1916" d="M0 866q0 145 76 272.5t206 222.5t303.5 150.5t372.5 55.5t373 -55.5t304 -150.5t206 -222t76 -273q0 -145 -76 -272t-206 -222.5t-304 -150.5t-373 -55q-92 0 -180 12q-176 -139 -411 -192q-25 -4 -50.5 -8.5t-54.5 -8.5q-16 -2 -27.5 6.5t-15.5 24.5t5 26.5t20 20.5 q23 23 43 44.5t36.5 51t30 69.5t23.5 97q-174 98 -275.5 241.5t-101.5 315.5z" /> |
|
150 |
<glyph unicode="" horiz-adv-x="1566" d="M0 621v288q0 16 11.5 27.5t27.5 11.5h391q16 0 28.5 -11t12.5 -28v-288q0 -29 22.5 -60t63.5 -58.5t98.5 -45t128.5 -17.5q70 0 128.5 17.5t99.5 45t63.5 58.5t22.5 60v288q0 39 39 39h391q16 0 27.5 -11t11.5 -28v-288q0 -135 -61.5 -254t-168 -207t-249 -139.5 t-304.5 -51.5q-164 0 -306 51.5t-248.5 139.5t-168 206.5t-61.5 254.5zM0 1106v391q0 16 11.5 27.5t27.5 11.5h391q16 0 28.5 -11.5t12.5 -27.5v-391q0 -16 -12.5 -27.5t-28.5 -11.5h-391q-16 0 -27.5 11.5t-11.5 27.5zM1098 1106v391q0 16 11 27.5t28 11.5h391 q16 0 27.5 -11.5t11.5 -27.5v-391q0 -16 -11.5 -27.5t-27.5 -11.5h-391q-39 0 -39 39z" /> |
|
151 |
<glyph unicode="" horiz-adv-x="1536" d="M-1 355.5q-1 37.5 28 66.5l673 674q29 29 68 28.5t68 -28.5l671 -674q29 -29 29 -67t-29 -66l-100 -103q-29 -29 -68 -28.5t-67 28.5l-508 510l-500 -510q-29 -29 -67.5 -28.5t-67.5 28.5l-100 103q-29 29 -30 66.5z" /> |
|
152 |
<glyph unicode="" horiz-adv-x="1536" d="M0 918.5q0 37.5 29 66.5l100 102q29 29 68 29t67 -29l508 -509l500 509q29 29 67.5 29t67.5 -29l100 -102q29 -29 30 -66.5t-28 -66.5l-673 -674q-29 -29 -68 -28.5t-68 28.5l-671 674q-29 29 -29 66.5z" /> |
|
153 |
<glyph unicode="" horiz-adv-x="1916" d="M2.5 1038.5q-12.5 30.5 28.5 75.5l385 424q25 29 63 29q39 0 64 -29l385 -424q41 -45 28.5 -75.5t-67.5 -30.5h-250v-680h174q6 -10 12 -19.5t17 -19.5l252 -281h-695q-33 0 -56.5 23.5t-23.5 56.5v920h-249q-55 0 -67.5 30.5zM823 1526h695q33 0 56 -22.5t23 -57.5v-918 h250q55 0 67.5 -30.5t-28.5 -75.5l-385 -424q-25 -29 -63 -29q-39 0 -64 29l-385 424q-41 45 -28.5 75.5t67.5 30.5h250v678h-174q-6 10 -12.5 20.5t-14.5 20.5z" /> |
|
154 |
<glyph unicode="" d="M0 1421v76q0 39 39 39h231q16 0 38 -4t36 -8q6 -4 14.5 -14.5t15.5 -23.5t12 -26.5t7 -21.5l27 -125h1347q35 0 58 -27t16 -59l-108 -578q-6 -25 -26.5 -42t-49.5 -17h-1084l35 -168q4 -16 17.5 -26.5t29.5 -10.5h856q16 0 27.5 -11.5t11.5 -27.5v-78q0 -16 -11 -26.5 t-28 -10.5h-163h-652h-104q-16 0 -36.5 3.5t-35.5 9.5q-6 2 -14 13t-15.5 24.5t-12.5 27t-7 21.5l-215 1016q-4 16 -17.5 26t-29.5 10h-170q-39 0 -39 39zM582 115q0 47 33.5 81.5t80.5 34.5q49 0 83 -34.5t34 -81.5t-34 -81t-83 -34q-47 0 -80.5 34t-33.5 81zM1233 115 q0 47 33.5 81.5t81.5 34.5q47 0 80.5 -34.5t33.5 -81.5t-33.5 -81t-80.5 -34t-81 34t-34 81z" /> |
|
155 |
<glyph unicode="" d="M0 115v1306q0 47 34 81t81 34h692q47 0 81 -34t34 -81t33.5 -80.5t80.5 -33.5h693q47 0 80.5 -35t33.5 -82v-1075q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81z" /> |
|
156 |
<glyph unicode="" d="M0 379v1042q0 47 34 81t81 34h692q47 0 81 -34t34 -81t33.5 -80.5t80.5 -33.5h443q47 0 80.5 -35t33.5 -82v-221h-1228q-37 0 -72 -12.5t-65.5 -34t-53 -51t-35.5 -64.5zM43 0l246 760q6 23 30.5 39t47.5 16h1476l-260 -758q-6 -23 -30.5 -40t-47.5 -17h-1462z" /> |
|
157 |
<glyph unicode="" horiz-adv-x="798" d="M2 368.5q10 22.5 57 22.5h203v754h-203q-47 0 -57 22.5t25 57.5l319 319q23 23 53 23q31 0 54 -23l321 -319q33 -35 22.5 -57.5t-57.5 -22.5h-202v-754h202q47 0 57.5 -22.5t-24.5 -57.5l-319 -319q-23 -23 -54 -23t-53 23l-321 319q-33 35 -23 57.5z" /> |
|
158 |
<glyph unicode="" horiz-adv-x="1597" d="M0 729q0 31 23 53l319 322q35 33 57.5 23.5t22.5 -56.5v-205h754v203q0 47 22.5 57.5t56.5 -22.5l320 -322q23 -23 22 -53q0 -31 -22 -53l-320 -322q-35 -33 -57 -22.5t-22 57.5v203h-754v-203q0 -47 -22.5 -57t-57.5 24l-319 320q-23 23 -23 53z" /> |
|
159 |
<glyph unicode="" d="M0 115v1306q0 47 35 81t82 34h1612q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1612q-47 0 -82 34t-35 81zM154 154h1536v1228h-1536v-1228zM307 264v363h203v-363h-203zM649 264v776h201v-776h-201zM993 264v592h203v-592h-203zM1333 264v922h203v-922 h-203z" /> |
|
160 |
<glyph unicode="" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t73 15.5h1153q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-1153q-39 0 -73.5 15.5t-60 41t-41 60.5t-15.5 76zM201 559q80 -111 198.5 -169t259.5 -58q96 0 184.5 26.5t160 73.5 t124 112.5t76.5 143.5q82 6 129 57q14 14 4 33q-8 18 -30 15h-4q23 23 30 45q8 20 -8 32q-14 14 -33 2q-8 -4 -29.5 -10t-45.5 -6q-4 0 -7.5 1t-7.5 1q0 2 -1 4t-1 4q-16 61 -57 110.5t-94 72.5q4 4 6 8t6 8q6 16 0 33q-2 6 -12.5 16t-34.5 8q-2 4 -6 8q-12 12 -25 9 q-25 -4 -49 -13l-2 2q-14 8 -31 -2q-59 -37 -98 -100t-68 -135q-35 31 -57 41q-61 35 -129 63.5t-154 61.5q-14 4 -24 -4q-10 -6 -15 -21q-2 -27 8.5 -58.5t38.5 -62.5q-25 -6 -20 -32q12 -68 68 -101l-13 -12q-14 -14 -4 -33q4 -12 26.5 -37.5t65.5 -38.5q-6 -12 -6 -22 t2 -14q6 -33 39 -50q-37 -25 -79 -34t-85 -5.5t-83 20.5t-70 46q-8 8 -19.5 8t-19.5 -8q-23 -18 -4 -39z" /> |
|
161 |
<glyph unicode="" horiz-adv-x="1536" d="M2 193v1150q0 39 15.5 75t41 61.5t60.5 41t74 15.5h1153q80 0 136 -56.5t56 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-74 -15.5h-486v643h172q12 0 21.5 8t9.5 21l12 168q0 14 -8 24q-10 10 -23 10h-184v74q0 41 10.5 54.5t53.5 13.5q25 0 55.5 -4t58.5 -11 q6 0 13.5 1.5t11.5 5.5q10 6 14 22l23 162q4 29 -25 35q-90 25 -188 24q-301 0 -301 -293v-84h-103q-33 0 -32 -32v-168q0 -12 9 -21.5t23 -9.5h103v-643h-393q-39 0 -74 15.5t-60.5 41t-41 60.5t-15.5 76z" /> |
|
162 |
<glyph unicode="" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 160h1536v114h-1536v-114zM154 1145h1536v231h-957l-14 -92h-565v-139zM266 1341h316v93h-316v-93zM557 709q0 -76 28.5 -142.5t78 -116 t116 -78t142.5 -28.5t142 28.5t115.5 78t78 116t28.5 142.5t-28.5 142.5t-78 115.5t-116 77.5t-141.5 28.5q-76 0 -142.5 -28.5t-116 -77.5t-78 -115.5t-28.5 -142.5zM672 709q0 51 19.5 97t53 80t79.5 53t98 19q51 0 97 -19t80 -53t53 -80t19 -97t-19 -97.5t-53 -80 t-80 -53t-97 -19.5t-97.5 19.5t-80 53t-53 79.5t-19.5 98zM743 709q0 -16 12.5 -28.5t28.5 -12.5q18 0 30.5 12.5t12.5 28.5q0 41 28 67.5t67 26.5v2q18 0 30.5 12t12.5 29q0 18 -12.5 30.5t-30.5 12.5q-74 0 -126.5 -53.5t-52.5 -126.5z" /> |
|
163 |
<glyph unicode="" horiz-adv-x="1916" d="M0 803.5q-6 111.5 30 230.5t113 228q78 109 179.5 180t209 102t213 17.5t191.5 -74.5q76 -53 121 -134t59 -176.5t-4 -199t-68 -203.5l414 -297l101 139l-105 74q-14 10 -17 27.5t7 32.5l51 69q10 14 26.5 17.5t32.5 -7.5l344 -247q16 -10 18.5 -27.5t-7.5 -32.5l-49 -69 q-10 -14 -27.5 -17.5t-32.5 6.5l-102 76l-101 -139l248 -178q43 -31 52.5 -83t-21.5 -95q-33 -43 -84 -51.5t-94 22.5l-803 573q-78 -80 -170 -130t-186.5 -68.5t-185.5 -2t-167 71.5q-86 61 -133 157.5t-53 208zM230.5 766q7.5 -41 30 -78t58.5 -63q37 -27 79 -36t83 -2 t78 29.5t64 59.5q39 53 41 114.5t-27 114.5q59 -10 116.5 11.5t96.5 74.5q27 37 36 79t2 84t-29.5 79t-59.5 63q-37 27 -79 36t-84 2t-79 -29.5t-63 -59.5q-37 -53 -39 -114.5t26 -114.5q-59 10 -116.5 -12.5t-96.5 -75.5q-27 -37 -36 -79t-1.5 -83z" /> |
|
164 |
<glyph unicode="" horiz-adv-x="1916" d="M0 801v180q0 8 22.5 15.5t52 11.5t56.5 7t37 3q12 49 37 88q-23 31 -45.5 61.5t-46.5 59.5l-4 10q0 6 20.5 29.5t47 50t50 47t29.5 20.5q2 0 20.5 -13t41 -30.5t43 -34t24.5 -20.5q43 25 90 37q0 8 3 37t7 57.5t10.5 52t16.5 23.5h178q8 0 15.5 -23.5t11.5 -52t7 -57.5 t5 -37q45 -12 86 -35q31 23 62.5 45.5t60.5 46.5l8 4q4 0 27.5 -21.5t49.5 -47t47.5 -49t21.5 -29.5q0 -4 -13.5 -22.5t-30 -40t-32 -41t-19.5 -25.5q23 -39 39 -92q10 -2 37 -5t55.5 -8.5t51 -11.5t22.5 -14v-178q0 -10 -22.5 -16.5t-51 -11.5t-56.5 -7t-36 -4 q-14 -43 -37 -88q23 -31 44.5 -60.5t48.5 -58.5l2 -10q0 -6 -20.5 -30t-47.5 -50.5t-50.5 -47t-29.5 -20.5q-2 0 -20.5 13.5t-41 31t-42 32.5t-25.5 20q-45 -23 -88 -37q0 -10 -3 -37t-8 -56.5t-12.5 -52t-15.5 -22.5h-178q-8 0 -15.5 22.5t-11.5 52t-7 56t-3 37.5 q-45 12 -88 37q-31 -23 -61.5 -46.5t-59.5 -48.5l-10 -2q-4 0 -27.5 20.5t-49 47t-46 50.5t-20.5 30q0 2 13 20.5t29.5 40t31 41t18.5 25.5q-23 43 -39 94q-10 2 -37 5t-55.5 7t-51 10.5t-22.5 14.5zM420 889q0 -37 14.5 -70t39 -57.5t58 -38.5t70.5 -14t70 14t57.5 38.5 t38.5 57.5t14 70t-14 70.5t-38.5 58t-57.5 39t-70 14.5q-76 0 -129 -53t-53 -129zM1114 373q0 6 13.5 13t31 14.5t33.5 12.5t22 7q4 23 9.5 39t15.5 37q-4 4 -13 17t-18.5 27.5t-16.5 28t-7 17.5t18.5 23.5t43 41t47 40t28.5 24.5l8 4q4 0 16.5 -8.5t25.5 -19.5t25.5 -21.5 t16.5 -14.5q35 12 76 19q2 6 9 21.5t16.5 30.5t17.5 27.5t14 12.5q4 0 34 -7t63.5 -18.5t60.5 -23.5t27 -23q0 -23 -5.5 -47t-9.5 -47q16 -12 28.5 -26.5t22.5 -30.5q25 2 49.5 3t47.5 1q8 0 18 -26.5t17.5 -60.5t12.5 -64.5t5 -39.5q0 -6 -13.5 -13t-29.5 -13t-32.5 -12.5 t-22.5 -8.5q-9 -38 -23 -71q2 -6 11.5 -18.5t18.5 -27t16 -27.5t7 -18q0 -4 -18.5 -23.5t-43 -41t-47 -40.5t-28.5 -26l-8 -4q-4 0 -16.5 8.5t-25.5 19.5t-25.5 21.5t-16.5 14.5q-37 -12 -78 -19q-2 -6 -9 -21.5t-15.5 -30.5t-16.5 -27.5t-14 -12.5t-35 7.5t-62.5 18.5 t-60 23.5t-26.5 22.5q0 23 5 47.5t9 46.5q-16 12 -28.5 26.5t-22.5 30.5q-23 -2 -45.5 -3t-44.5 -1h-14.5t-8.5 11q-2 8 -8 35.5t-13.5 58t-12.5 55.5t-5 29zM1192 1264q0 6 12.5 12t29.5 10t33.5 6t22.5 4q10 33 31 64q-2 4 -8 17.5t-12.5 27.5t-11.5 25.5t-5 15.5 q0 6 21.5 22.5t49 35t51.5 32.5t28 14t13 -9t20.5 -21.5t20.5 -23.5t13 -15q14 4 28.5 6t29.5 0h14q2 4 11 16.5t18.5 25.5t17.5 23.5t12 10.5t30 -11.5t55.5 -26t53 -28.5t23.5 -20q0 -4 -4 -15.5t-8 -26t-8.5 -27.5t-6.5 -17q20 -25 39 -60q51 -4 74 -7t29 -18.5t5 -52 t3 -106.5q0 -6 -12.5 -12.5t-28.5 -10.5t-32.5 -6t-22.5 -4q-13 -36 -31 -63q2 -4 8 -16.5t13.5 -27t12.5 -26.5t5 -14q0 -6 -22.5 -23.5t-50 -36t-51.5 -33t-26 -14.5q-4 0 -14 9.5t-21.5 21.5t-20.5 23.5t-13 15.5q-14 -4 -28.5 -6t-29.5 0h-14q-4 -4 -12 -16.5t-17.5 -26 t-18.5 -23.5t-13 -10t-30 11t-54.5 25.5t-52 29t-23.5 20.5q0 2 3 14.5t8 26.5t9 27.5t6 17.5q-23 23 -38 59q-53 2 -75 5t-29 18.5t-5 52.5t-4 109zM1397 367q0 -49 34.5 -85t84.5 -36q49 0 84.5 34.5t35.5 86.5q0 49 -34.5 83.5t-85.5 34.5q-49 0 -84 -34.5t-35 -83.5z M1446 1206q0 -47 31.5 -78.5t76.5 -31.5q47 0 79 31.5t32 76.5q0 47 -31.5 79t-77.5 32q-47 0 -78.5 -32t-31.5 -77z" /> |
|
165 |
<glyph unicode="" horiz-adv-x="1916" d="M0 997q0 119 61.5 222.5t167 180.5t246.5 122t303 45t303.5 -45t247 -122t166.5 -180.5t61 -222.5q0 -117 -61 -221t-166.5 -181t-247 -122t-303.5 -45q-37 0 -73.5 3t-71.5 7q-147 -113 -336 -155q-20 -4 -40.5 -7.5t-43.5 -7.5q-12 -2 -21.5 6.5t-13.5 18.5v2 q-4 12 3 19.5t18 17.5q18 18 34.5 36.5t29.5 42t24.5 55.5t19.5 79q-141 78 -224 195.5t-83 256.5zM649 258q6 4 13.5 8t13.5 8q51 -6 102 -6q197 0 369 56.5t298 155t198.5 231.5t72.5 286q0 41 -6 84q96 -78 151.5 -175t55.5 -208q0 -139 -83 -256.5t-224 -195.5 q8 -47 19 -79t25.5 -55.5t30 -42t33.5 -36.5q10 -10 17.5 -18.5t3.5 -18.5v-2q-2 -12 -12.5 -19.5t-22.5 -5.5q-23 4 -43.5 7.5t-40.5 7.5q-96 20 -180 60t-156 95q-35 -4 -71.5 -7t-73.5 -3q-141 0 -265 35t-225 94z" /> |
|
166 |
<glyph unicode="" horiz-adv-x="1597" d="M0 193v643q0 49 35 83.5t84 34.5h348q27 14 43 30.5t35 39.5q16 20 32.5 38.5t34.5 37.5q33 35 76 68.5t66 74.5q16 29 23 64.5t12.5 71.5t12.5 70t23.5 60.5t47 42t81.5 15.5q61 0 111.5 -25.5t85.5 -68.5t54.5 -98.5t19.5 -112.5q0 -59 -17.5 -112.5t-42.5 -107.5 q35 2 70 4.5t70 2.5q55 0 107 -10.5t93 -35t66.5 -67.5t25.5 -109q0 -29 -5 -57t-15 -57q18 -43 18 -90q0 -78 -41 -142q10 -59 -7 -118.5t-58 -104.5q-4 -84 -45 -139.5t-102.5 -89t-135 -47t-143.5 -13.5q-72 0 -144.5 10.5t-142.5 28.5q-70 20 -139.5 43t-142.5 23h-375 q-49 0 -84 34.5t-35 84.5zM236 276q0 -35 22 -57t57 -22q33 0 56.5 22.5t23.5 56.5q0 33 -23.5 56.5t-56.5 23.5q-35 0 -57 -23.5t-22 -56.5zM492 193q70 0 136 -16.5t133.5 -35t141.5 -35t160 -16.5q45 0 98 6t99.5 26.5t78 56.5t31.5 95q0 10 -1 18.5t-3 18.5 q35 16 53.5 53t18.5 74q0 39 -21 68q60 49 60 123q0 23 -12.5 43t-26.5 35q16 29 28.5 57.5t12.5 62.5q0 35 -17.5 55.5t-43 31t-56.5 12.5t-57 2q-45 0 -90.5 -3t-90.5 -3q-31 0 -61.5 3t-58.5 15q0 41 16 78t35.5 74.5t35 78.5t15.5 91q0 33 -10.5 65.5t-29.5 59t-47 44 t-65 17.5h-11t-11 -2q-8 -4 -9 -8t-3 -13q-12 -59 -22.5 -123.5t-39.5 -117.5q-29 -51 -74 -88t-86 -78q-29 -31 -49 -56.5t-41.5 -48t-48.5 -42t-65 -35.5h-2v-643z" /> |
|
167 |
<glyph unicode="" horiz-adv-x="1597" d="M0 309q0 29 5 57.5t15 57.5q-18 43 -18 90q0 78 41 141q-10 59 7.5 119t58.5 105q4 84 45 139t102 89t135 47t144 13q72 0 144.5 -10t141.5 -29q70 -20 139.5 -42.5t143.5 -22.5h375q49 0 83.5 -35t34.5 -84v-643q0 -49 -34.5 -84t-83.5 -35h-349q-27 -14 -43 -30.5 t-34 -38.5q-16 -20 -32.5 -39t-35.5 -37q-33 -35 -76 -69t-65 -74q-25 -43 -31 -99.5t-18.5 -106.5t-44 -84t-107.5 -34q-61 0 -111.5 25.5t-85 68.5t-54 98.5t-19.5 112.5q0 59 17.5 112.5t41.5 106.5q-35 -2 -69.5 -4t-69.5 -2q-55 0 -107.5 10.5t-93.5 35t-66.5 67.5 t-25.5 108zM119 309q0 -35 17.5 -55.5t43 -30.5t56 -12t57.5 -2q47 0 91 3t89 3q31 0 61.5 -3t59.5 -15q0 -41 -16.5 -78t-36 -75t-34.5 -79t-15 -90q0 -33 10 -65.5t29.5 -59t47 -43t64.5 -16.5q4 0 11.5 -1t11.5 1q8 4 9 8l3 12q12 59 22.5 124t38.5 118q29 51 74 88 t86 78q29 31 49.5 56.5t42 48t47 42t66.5 35.5h2v643q-72 0 -137.5 16.5t-133 36t-141 36t-159.5 16.5q-45 0 -98.5 -7.5t-99.5 -27t-78 -56t-32 -96.5q0 -10 1 -18t3 -19q-35 -16 -53 -53t-18 -74q0 -39 20 -67q-59 -49 -59 -123q0 -23 12 -43.5t27 -34.5 q-16 -29 -28.5 -57.5t-12.5 -63.5zM1202 860q0 -33 23.5 -56.5t56.5 -23.5q35 0 57.5 23.5t22.5 56.5q0 35 -22.5 57.5t-57.5 22.5q-33 0 -56.5 -22.5t-23.5 -57.5z" /> |
|
168 |
<glyph unicode="" horiz-adv-x="837" d="M1 959.5q9 27.5 54 33.5l506 74l227 459q23 41 50 41v-1348l-453 -237q-41 -23 -64.5 -6.5t-15.5 63.5l86 504l-364 356q-35 33 -26 60.5z" /> |
|
169 |
<glyph unicode="" horiz-adv-x="1802" d="M0 1073q0 137 43 231.5t112.5 153t156.5 84t177 25.5q63 0 125 -21.5t115 -53.5t97 -70t75 -68q31 31 76 68.5t98 69.5t113.5 53.5t126.5 21.5q88 0 175 -25.5t156.5 -84t112.5 -153t43 -231.5q0 -94 -34.5 -177t-76.5 -146.5t-79 -102.5t-39 -43l-615 -612 q-26 -23 -57 -23q-33 0 -55 23l-617 614q-4 2 -39.5 41t-77.5 102.5t-77 146.5t-35 177zM160 1073q0 -68 27.5 -131t61.5 -112.5t63 -79.5l28 -29l561 -559l561 559l29 29q29 30 62.5 79.5t61 113t27.5 130.5q0 104 -29.5 169t-77.5 101.5t-106.5 50t-113.5 13.5 q-53 0 -107.5 -25.5t-102.5 -61.5t-86 -74t-56 -60q-25 -31 -62 -31t-61 31q-18 23 -56.5 60.5t-86.5 73.5t-102.5 61.5t-105.5 25.5q-57 0 -115.5 -13.5t-106.5 -50t-77.5 -101t-29.5 -169.5z" /> |
|
170 |
<glyph unicode="" horiz-adv-x="1689" d="M0 307v922q0 63 24.5 118.5t66.5 97.5t97.5 66.5t118.5 24.5h461v-193h-461q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h461v-193h-461q-63 0 -118.5 24.5t-97.5 66.5t-66.5 97.5t-24.5 118.5zM508 584v368q0 33 22.5 54.5t55.5 21.5h428v293 q0 41 39 57q39 14 65 -14l553 -553q18 -18 18.5 -44t-18.5 -42l-553 -553q-18 -18 -43 -18q-10 0 -22 4q-39 16 -39 57v291h-428q-33 0 -55.5 22.5t-22.5 55.5z" /> |
|
171 |
<glyph unicode="" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-1150q-80 0 -136.5 56.5t-56.5 136.5zM207 1192q0 -57 40 -97t95 -40q57 0 97 40t40 97q0 55 -40 95t-97 40q-55 0 -95 -40 t-40 -95zM213 240q0 -10 9 -19.5t20 -9.5h200q12 0 20.5 9t8.5 20v706q0 29 -29 29h-200q-10 0 -19.5 -8.5t-9.5 -20.5v-706zM580 240q0 -10 9 -19.5t19 -9.5h201q12 0 20.5 9t8.5 20v383q0 68 26.5 113.5t102.5 45.5q59 0 79.5 -28.5t20.5 -81.5v-432q0 -10 8 -19.5 t21 -9.5h204q10 0 19.5 9t9.5 20v477q0 141 -81 208.5t-216 67.5q-55 0 -107.5 -15t-93.5 -56q0 16 -3 34.5t-25 18.5h-195q-10 0 -19 -8.5t-9 -20.5v-706z" /> |
|
172 |
<glyph unicode="" horiz-adv-x="1916" d="M2 950q8 82 45 172t100 176t139 147.5t152 92.5t145.5 30t121.5 -40q53 -41 73.5 -107.5t12.5 -148.5l301 -225q111 63 215 73t180 -47q55 -41 80.5 -108.5t23.5 -150.5t-30.5 -177t-83.5 -188l428 -410q25 -25 4 -53q-12 -16 -33 -17q-10 0 -18 6l-517 293 q-74 -80 -155.5 -135t-161.5 -80.5t-151.5 -19.5t-127.5 47q-76 55 -95 158.5t9 228.5l-303 223q-76 -33 -145.5 -32t-122.5 40q-51 39 -72.5 104.5t-13.5 147.5zM171 858.5q3 -16.5 15 -27.5q21 -14 50 -14q31 0 65.5 17.5t71.5 46t72.5 66.5t66.5 79q10 14 7 30.5 t-15 26.5q-14 10 -30.5 8.5t-27.5 -16.5q-78 -104 -138 -143t-72 -35q-14 10 -31 7t-27 -15q-10 -14 -7 -30.5zM465 754l364 -271q8 -8 23 -8q20 0 33 17q10 14 8 29.5t-16 25.5l-347 258q-16 -14 -32.5 -27.5t-32.5 -23.5zM829.5 239.5q1.5 -16.5 16.5 -26.5q29 -23 69 -23 q41 0 88.5 21.5t95.5 57.5t94 84.5t87 101.5q10 12 8 28.5t-16 26.5q-12 10 -28.5 8t-26.5 -16q-51 -68 -102.5 -116t-95.5 -75.5t-78 -36t-48 4.5q-14 10 -29.5 7t-25.5 -18q-10 -12 -8.5 -28.5z" /> |
|
173 |
<glyph unicode="" d="M0 307v922q0 63 24.5 119.5t65.5 97.5t97.5 65.5t119.5 24.5h582q-2 -14 -4 -27.5t-2 -29.5v-88q0 -23 6 -48h-582q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h1075q47 0 81 33.5t34 80.5v340q41 -31 90 -49t103 -20v-271q0 -63 -25 -118.5 t-67 -97.5t-97 -66.5t-119 -24.5h-1075q-63 0 -119.5 24.5t-97.5 66.5t-65.5 97.5t-24.5 118.5zM692.5 522q-0.5 25 16.5 41l770 772h-269q-25 0 -41 16.5t-16 41.5v86q-2 23 15.5 40t41.5 17h576q23 0 40 -17.5t17 -39.5v-86v-490q0 -25 -17.5 -42t-39.5 -15h-86 q-25 0 -41.5 16.5t-16.5 40.5v268l-772 -770q-16 -16 -40.5 -16t-41.5 16l-79 80q-16 16 -16.5 41z" /> |
|
174 |
<glyph unicode="" horiz-adv-x="1689" d="M0 584v368q0 33 22.5 54.5t55.5 21.5h428v293q0 41 37 57q39 14 67 -14l553 -553q16 -18 16.5 -44t-16.5 -42l-553 -553q-18 -18 -43 -18q-8 0 -24 4q-37 16 -37 57v291h-428q-33 0 -55.5 22.5t-22.5 55.5zM922 0v193h460q47 0 81 33.5t34 80.5v922q0 47 -33.5 80.5 t-81.5 33.5h-460v193h460q63 0 118.5 -24.5t97.5 -65.5t67 -97.5t25 -119.5v-922q0 -63 -25 -118.5t-67 -97.5t-97 -66.5t-119 -24.5h-460z" /> |
|
175 |
<glyph unicode="" horiz-adv-x="1689" d="M0 1042v187q0 33 22.5 54.5t55.5 21.5h323q-2 12 -2 25v24v4q0 53 4.5 88t15.5 54.5t31.5 27.5t55.5 8h678q33 0 54.5 -8t32.5 -27.5t15 -54.5t4 -88v-25.5t-2 -27.5h324q33 0 55.5 -21.5t22.5 -54.5v-187q0 -63 -45.5 -130.5t-122 -128t-180 -106.5t-222.5 -65 q-51 -10 -91 -41.5t-40 -70.5q0 -35 17.5 -51.5t39 -31t40 -31.5t22.5 -52q4 -23 -2 -47q-4 -14 23.5 -23.5t67.5 -18.5t82 -22.5t64 -34.5q12 -10 19.5 -39.5t9.5 -64.5q2 -33 -6 -58.5t-29 -25.5h-985q-20 0 -28.5 25.5t-6.5 58.5q2 35 9.5 64.5t19.5 39.5q23 20 64 34 t80.5 23t68.5 18t25 24q-4 14 -4 25.5v21.5q2 35 21.5 52t42 31.5t39.5 31t17 51.5q0 39 -39.5 70.5t-93.5 41.5q-117 20 -220 66.5t-180 106t-122 127t-45 130.5zM154 1042q0 -20 23.5 -54t67.5 -70.5t106.5 -71.5t140.5 -60q-25 80 -44.5 175.5t-33.5 189.5h-260v-109z M1198 786q78 25 140.5 60t106.5 71.5t67.5 70.5t23.5 54v109h-262q-12 -94 -31.5 -189.5t-44.5 -175.5z" /> |
|
176 |
<glyph unicode="" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-337v25q0 39 2 97t-3.5 115.5t-24.5 104.5t-65 66q188 20 290 110t102 287q0 66 -22.5 128t-67.5 114q6 23 8 45t2 45 q0 41 -9.5 91t-31.5 85h-12q-43 2 -79 -8.5t-68 -27.5t-62.5 -37.5t-65.5 -39.5q-33 4 -65.5 6t-65.5 2t-65.5 -2t-65.5 -6q-35 18 -65.5 39t-62.5 38t-67.5 27.5t-79.5 8.5h-12q-23 -35 -32 -85t-9 -91q0 -23 2 -45.5t8 -44.5q-45 -51 -66.5 -114t-21.5 -128 q0 -193 95.5 -283t281.5 -112q-39 -16 -59.5 -50t-32.5 -75q-27 -8 -49.5 -15.5t-50.5 -7.5q-55 0 -88 28.5t-59.5 62.5t-56.5 62.5t-79 28.5q-4 0 -20.5 -2t-16.5 -12q0 -23 19.5 -32t31.5 -19q39 -31 56.5 -71t39 -76.5t62.5 -62.5t127 -26q35 0 80 11q0 -10 -1 -18.5 t-1 -16.5q0 -29 2 -59.5t-2 -59.5h-317q-80 0 -136.5 56.5t-56.5 136.5z" /> |
|
177 |
<glyph unicode="" d="M0 39v614q0 16 11.5 27.5t27.5 11.5h229q16 0 27.5 -11t11.5 -28v-346h1229v346q0 16 11.5 27.5t27.5 11.5h229q16 0 27.5 -11t11.5 -28v-614q0 -39 -39 -39h-1765q-39 0 -39 39zM346 969.5q-6 15.5 16 38.5l504 505q23 23 55.5 23t55.5 -23l506 -505q23 -23 15.5 -38.5 t-38.5 -15.5h-307v-499q0 -33 -22.5 -55.5t-55.5 -22.5h-307q-33 0 -54.5 22.5t-21.5 55.5v499h-307q-33 0 -39 15.5z" /> |
|
178 |
<glyph unicode="" horiz-adv-x="1609" d="M2 514q-2 35 1 68.5t7 74.5q4 35 7 72t10 66q14 66 30.5 128t44.5 117q20 41 45 81t54 79q10 14 21 24.5t24 20.5q23 23 45 45.5t49 42.5t57.5 36.5t65.5 33.5q33 16 67.5 29.5t71.5 27.5q70 29 156 51l2 2q45 12 85 17.5t79 5.5q59 0 112.5 -9t106.5 -20q41 -8 85 -15 t93 -7h2q29 0 62.5 5t66.5 5q25 0 45.5 -6t32.5 -25q23 -31 26 -71.5t-2 -75.5q-4 -35 -8 -71t2 -72q4 -23 11.5 -39.5t15.5 -36.5q8 -18 11 -40t7 -42q18 -104 15.5 -195.5t-23 -170.5t-56.5 -148.5t-81 -132.5q-37 -49 -79 -97.5t-92 -91.5t-110.5 -77.5t-134.5 -59.5 q-76 -27 -158.5 -34t-158.5 -11h-31q-104 0 -194.5 16.5t-192.5 16.5h-4q-35 0 -77 -10.5t-83 -12.5h-2q-37 0 -65.5 17.5t-42.5 42.5q-20 35 -17.5 72.5t12.5 68.5t10.5 66.5t-5 75.5t-12.5 81t-9 82z" /> |
|
179 |
<glyph unicode="" horiz-adv-x="1597" d="M0 1169q0 55 14.5 114.5t43 114t68.5 98.5t93 69q12 -2 26.5 0t26.5 2q10 0 30 -1l40 -2t38.5 -4.5t27.5 -7.5q8 -6 15 -18t12 -26.5t9.5 -30t8.5 -25.5q6 -18 23.5 -65.5t35.5 -97.5t32.5 -93t14.5 -53q0 -37 -24.5 -68t-54 -57.5t-54.5 -50t-25 -45.5q0 -20 16.5 -49 t26.5 -46q84 -145 188.5 -248.5t252.5 -187.5q18 -10 45.5 -27.5t50.5 -17.5t52.5 32t60 70.5t62 70.5t58.5 32q10 0 51.5 -22.5t89.5 -50t93 -55.5t61 -36q16 -10 46 -25.5t40 -35.5q2 -6 2 -23q0 -16 -3 -36.5t-8 -43t-12 -43t-13 -35.5q-18 -39 -59.5 -71.5t-92.5 -55 t-104.5 -36t-92.5 -13.5q-80 0 -153.5 25.5t-145.5 54.5q-123 45 -232.5 118t-203.5 164t-175 196.5t-144 215.5q-25 41 -52.5 95.5t-51 112t-39 113.5t-15.5 105z" /> |
|
180 |
<glyph unicode="" d="M0 307v922q0 63 24.5 118.5t66.5 97.5t97.5 66.5t118.5 24.5h1075q63 0 118.5 -24.5t97.5 -66.5t67 -97.5t25 -118.5v-922q0 -63 -25 -118.5t-67 -97.5t-97 -66.5t-119 -24.5h-1075q-63 0 -118.5 24.5t-97.5 66.5t-66.5 97.5t-24.5 118.5zM193 307q0 -47 33.5 -80.5 t80.5 -33.5h1075q47 0 81 33.5t34 80.5v922q0 47 -34 80.5t-81 33.5h-1075q-47 0 -80.5 -33.5t-33.5 -80.5v-922z" /> |
|
181 |
<glyph unicode="" horiz-adv-x="1253" d="M0 84v1337q0 47 34 81t81 34h1024q47 0 80.5 -34t33.5 -81v-1337q0 -47 -33.5 -81t-80.5 -34t-80 33l-432 432l-432 -432q-33 -33 -80 -33t-81 34t-34 81zM158 186l469 471l469 -471v1194h-938v-1194z" /> |
|
182 |
<glyph unicode="" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-1150q-80 0 -136.5 56.5t-56.5 136.5zM193 1040q2 -35 15 -76.5t30 -78.5q16 -37 33.5 -72t33.5 -63q74 -129 176.5 -241 t225.5 -190q31 -18 67.5 -36.5t75.5 -32.5q41 -16 83 -31.5t81 -21.5q63 -10 112.5 2t90.5 34q27 12 57.5 33.5t44.5 52.5q4 8 9 27t9 38t6.5 37.5t-2.5 29.5q-4 12 -24.5 22t-36.5 21q-43 25 -71.5 41t-67.5 38q-16 10 -36 23.5t-38 13.5q-23 0 -46.5 -27.5t-37.5 -43.5 q-12 -14 -36.5 -43t-47.5 -31q-14 -2 -32.5 10t-37.5 23q-106 59 -182 136t-135 177q-10 16 -21.5 37.5t-7.5 38.5q2 18 24.5 33.5t35.5 29.5q14 16 31.5 37t19.5 43q4 16 -5 38t-16 42q-16 43 -28.5 76t-26.5 76q-6 16 -12 40.5t-21 30.5q-8 4 -26.5 7t-39 4.5t-37.5 0 t-24 -1.5h-8q-33 -16 -62.5 -45.5t-51 -69.5t-34 -88t-9.5 -100z" /> |
|
183 |
<glyph unicode="" d="M0 399q0 20 13.5 33.5t33.5 13.5q14 0 31 -12q123 -109 287 -108q59 0 117.5 15t107.5 48q-29 16 -47.5 42t-18.5 58q0 23 8 39q-18 6 -44.5 20.5t-51 34t-41 43t-16.5 46.5q0 16 10 28.5t25 22.5q-41 25 -76 74t-35 98q0 33 33 43q-35 35 -55.5 81t-20.5 95 q0 23 9.5 41.5t37.5 18.5q18 0 84 -27t142.5 -60.5t146.5 -67.5t98 -48q25 -14 47.5 -31.5t44.5 -36.5q20 51 47 106.5t60 106.5t73 96t89 74q8 6 24 6q18 0 27 -8q16 6 41.5 13.5t42.5 7.5q29 0 43 -27q31 0 56.5 -15.5t25.5 -50.5q0 -31 -27 -53q96 -43 159.5 -125 t90.5 -182q6 -2 23 -2q47 0 88 16.5t57 16.5q18 0 31.5 -14.5t13.5 -32.5q0 -23 -19.5 -48.5t-33.5 -39.5q23 4 42 -7.5t19 -38.5q0 -29 -26.5 -50t-61.5 -37.5t-72.5 -25.5t-58.5 -11q-43 -139 -133 -246t-210 -178.5t-258 -109.5t-275 -38q-219 0 -415 93.5t-325 273.5 q-8 16 -8 26z" /> |
|
184 |
<glyph unicode="" horiz-adv-x="790" d="M0 862v203q0 16 11.5 28.5t27.5 12.5h125v102q0 358 366 359q123 0 232 -31q33 -10 29 -43l-27 -199q-4 -16 -16 -26q-16 -10 -31 -6q-35 8 -72.5 12t-66.5 4q-53 0 -65.5 -16.5t-12.5 -67.5v-88h223q14 0 29 -14q10 -10 10 -29l-17 -205q0 -16 -11 -25.5t-27 -9.5h-207 v-784q0 -16 -11.5 -27.5t-27.5 -11.5h-258q-16 0 -27.5 11.5t-11.5 27.5v784h-125q-16 0 -27.5 11.5t-11.5 27.5z" /> |
|
185 |
<glyph unicode="" horiz-adv-x="1847" d="M0 743q0 115 37 222.5t113 193.5l-3 4l3 2q-16 39 -21.5 81t-5.5 85q0 25 2 56.5t8 65.5t15.5 63.5t23.5 50.5h8q61 0 110.5 -12.5t94.5 -35t87 -52t91 -60.5q86 25 178.5 33t182.5 8t182 -8t180 -33q47 31 90 60.5t87 52t93.5 35t110.5 12.5h10q12 -20 21.5 -50 t15.5 -64t9 -65.5t3 -56.5q0 -43 -6 -85t-20 -81v-2l-2 -4q76 -86 112.5 -193.5t36.5 -222.5q0 -233 -66.5 -383.5t-188.5 -236.5t-292 -120t-376 -34q-207 0 -378 34t-292 120t-187.5 236.5t-66.5 383.5zM250 483q0 -145 64.5 -224t165 -116t219 -43t227.5 -6q74 0 152.5 2 t153.5 12.5t142.5 34t117.5 67.5t80 111.5t30 165.5q0 84 -27 147.5t-75 106.5t-114.5 64.5t-146.5 21.5q-78 0 -156.5 -7t-156.5 -7t-157 7t-157 7q-162 0 -262 -87t-100 -257zM494 524q0 66 26.5 113t65.5 47t66.5 -47t27.5 -113t-27.5 -112.5t-66.5 -46.5t-65.5 46.5 t-26.5 112.5zM795 258q-6 16 12 25q16 6 24 -13q27 -76 93 -75q31 0 56.5 20.5t35.5 54.5q8 20 26 13q16 -6 13 -25q-16 -47 -51 -75.5t-80 -28.5q-43 0 -78 28.5t-51 75.5zM864 369q0 -12 17.5 -21.5t42.5 -9.5t42 9.5t17 21.5t-17.5 21t-41.5 9q-25 0 -42.5 -9t-17.5 -21z M1167 524q0 -66 28 -112.5t67 -46.5t65.5 46.5t26.5 112.5t-27 113t-65 47q-39 0 -67 -47t-28 -113z" /> |
|
186 |
<glyph unicode="" horiz-adv-x="1880" d="M0 117v626q0 49 35 84t82 35h665v156q0 113 43 213t118 175t175 118t213 43t213.5 -43t175 -118t117.5 -175.5t43 -212.5v-152q0 -33 -22.5 -55.5t-55.5 -22.5h-80q-33 0 -55 23t-22 55v152q0 66 -25 123t-67 99t-99 66.5t-123 24.5t-122 -24.5t-99 -66.5t-67.5 -99.5 t-24.5 -122.5v-156h119q47 0 81.5 -34.5t34.5 -84.5v-626q0 -47 -34.5 -82t-81.5 -35h-1020q-47 0 -82 35t-35 82zM494 164h266l-66 285q29 18 47.5 48.5t18.5 65.5q0 55 -39 95t-94 40t-94 -40t-39 -95q0 -35 18 -65.5t47 -46.5z" /> |
|
187 |
<glyph unicode="" d="M0 154v1228q0 63 45 108.5t109 45.5h1536q63 0 108 -45t45 -109v-1228q0 -63 -45 -108.5t-108 -45.5h-1536q-63 0 -108.5 45t-45.5 109zM154 154h1536v575h-1536v-575zM154 1114h1536v268h-1536v-268zM260 250v115h307v-115h-307zM676 250v115h446v-115h-446z" /> |
|
188 |
<glyph unicode="" horiz-adv-x="1566" d="M0 236q0 49 18.5 91t50 74.5t75 51t92.5 18.5t91 -18.5t74.5 -51t51 -74.5t18.5 -91t-18.5 -92.5t-51 -75t-74.5 -50t-91 -18.5t-92.5 18.5t-75 50t-50 74.5t-18.5 93zM0 819v158q0 35 25 57q23 23 53 23q2 0 3 -1t3 -1q193 -14 362.5 -95t301 -212.5t212 -301.5 t95.5 -362q4 -35 -21 -59q-23 -25 -57 -25h-158q-29 0 -51.5 20.5t-26.5 51.5q-12 133 -68.5 249.5t-145.5 205.5t-205.5 145.5t-249.5 68.5q-31 4 -51.5 27t-20.5 51zM0 1331v158q0 33 25 55q23 23 53 23h4q301 -16 565 -137t463 -320t319.5 -463t137.5 -565q4 -31 -23 -57 q-23 -25 -55 -25h-158q-31 0 -53.5 21.5t-24.5 52.5q-14 238 -110 446.5t-255 367.5t-368 255t-446 110q-31 2 -52.5 24.5t-21.5 53.5z" /> |
|
189 |
<glyph unicode="" d="M0 193v382q0 23 6 45.5t12 45.5l238 727q20 63 75.5 103t121.5 40h938q66 0 121 -40t75 -103l238 -727q6 -23 12 -45.5t6 -45.5v-382q0 -41 -15.5 -76t-41 -60.5t-61 -41t-74.5 -15.5h-1458q-80 0 -136.5 56.5t-56.5 136.5zM154 193q0 -16 11 -27.5t28 -11.5h1458 q16 0 27.5 11t11.5 28v382q0 16 -11.5 27.5t-27.5 11.5h-1458q-16 0 -27.5 -11t-11.5 -28v-382zM213 768h1417l-188 578q-4 16 -19.5 26t-31.5 10h-938q-16 0 -31.5 -10t-20.5 -26zM1057 385q0 39 27.5 66.5t68.5 27.5q39 0 66.5 -27.5t27.5 -66.5q0 -41 -27.5 -68.5 t-66.5 -27.5q-41 0 -68.5 27.5t-27.5 68.5zM1364 385q0 39 27.5 66.5t68.5 27.5q39 0 66.5 -27.5t27.5 -66.5q0 -41 -27.5 -68.5t-66.5 -27.5q-41 0 -68.5 27.5t-27.5 68.5z" /> |
|
190 |
<glyph unicode="" d="M0 754v229q0 63 45 108.5t109 45.5h499q115 0 245 33.5t255 90t235.5 128t186.5 147.5q63 0 108.5 -45t45.5 -109v-368q49 -12 81.5 -52.5t32.5 -93.5t-32.5 -93t-81.5 -52v-369q0 -63 -45.5 -108t-108.5 -45q-68 68 -164 132t-206.5 117.5t-227.5 91.5t-227 50 q-43 -12 -70 -40t-37 -62.5t-2 -70.5t37 -65q-25 -41 -23 -75.5t20.5 -66.5t49.5 -61.5t66 -58.5q-20 -43 -69.5 -65.5t-106 -25.5t-110.5 10.5t-85 43.5q-18 61 -40 125t-36 130.5t-14 138t24 151.5h-200q-63 0 -108.5 45t-45.5 109zM807 741q102 -16 206.5 -49t205 -78 t191.5 -99t165 -112v930q-76 -59 -166 -113.5t-190.5 -98.5t-205 -77.5t-206.5 -48.5v-254z" /> |
|
191 |
<glyph unicode="" horiz-adv-x="1759" d="M0 317q104 78 172 172.5t109 201t60 224t28 240.5q6 84 56 159t126 131t163 89t167 33q74 0 163 -33t165.5 -88t129 -129t52.5 -158q6 -121 27.5 -239.5t63.5 -227t109.5 -204t167.5 -171.5q-4 -70 -56 -114.5t-120 -44.5h-469q-18 -82 -82.5 -135.5t-150.5 -53.5 t-151.5 53.5t-84.5 135.5h-469q-68 0 -120 45t-56 114zM238 317h1284q-78 86 -129.5 183.5t-84 202t-50 214t-25.5 222.5q-4 55 -41 104t-89 86t-111.5 57.5t-110.5 20.5q-47 0 -107.5 -21.5t-114 -56.5t-91.5 -83t-40 -99q-6 -111 -23.5 -222.5t-51 -218t-87 -205 t-128.5 -184.5zM713 209q0 -70 49 -119t119 -49q18 0 18 20t-18 21q-53 0 -91 37t-38 90q0 20 -19 20q-20 0 -20 -20z" /> |
|
192 |
<glyph unicode="" horiz-adv-x="1597" d="M0 573q0 33 23 56l143 139l-143 139q-23 23 -23 56q0 25 16.5 45t40.5 26l195 49q-6 18 -15.5 48t-18.5 61t-16 59.5t-7 46.5q0 31 21.5 52.5t51.5 21.5q18 0 47 -7t60 -16.5t60.5 -18.5t47.5 -15l49 194q6 25 27 41.5t45 16.5q35 0 53 -23l142 -143l139 143q23 23 53 23 q27 0 47.5 -15.5t26.5 -42.5l49 -194q18 6 48 15t60.5 18.5t59.5 16.5t47 7q29 0 51.5 -21.5t22.5 -52.5q0 -18 -7 -46.5t-16.5 -59.5t-18.5 -60.5t-15 -48.5l194 -49q25 -6 41 -26.5t16 -44.5q0 -33 -22 -56l-145 -139l145 -139q23 -23 22 -56q0 -25 -16 -45t-41 -26 l-194 -49q6 -18 15 -48t18.5 -61t16.5 -59.5t7 -46.5q0 -29 -21.5 -51.5t-52.5 -22.5q-18 0 -47 7t-59.5 16.5t-60 18.5t-48.5 15l-49 -194q-6 -25 -26.5 -41.5t-45.5 -16.5q-33 0 -55 23l-139 143l-142 -143q-18 -23 -53 -23q-25 0 -45 16.5t-27 41.5l-49 194 q-18 -6 -47.5 -15t-60.5 -18.5t-59.5 -16.5t-47.5 -7q-31 0 -52 22.5t-21 51.5q0 18 7 46.5t16 59.5t18.5 60.5t15.5 48.5l-195 49q-25 6 -41 26.5t-16 44.5z" /> |
|
193 |
<glyph unicode="" horiz-adv-x="1916" d="M0 193v643q0 49 35 83.5t84 34.5h348q27 14 42 30.5t34 39.5q16 20 33.5 38.5t33.5 37.5q35 35 77 68.5t65 74.5q25 43 29.5 99.5t17 106.5t44 84t109.5 34q61 0 111.5 -25.5t85.5 -68.5t54.5 -98.5t19.5 -112.5q0 -53 -15.5 -104.5t-38.5 -98.5h134l376 -2 q49 0 93.5 -17.5t76 -49.5t50 -75t18.5 -94q0 -49 -18.5 -92t-50 -74.5t-75.5 -49t-94 -17.5h-200q-10 -59 -39 -107q10 -59 -7.5 -117.5t-56.5 -103.5q0 -76 -28.5 -131t-75.5 -90t-109.5 -52.5t-132.5 -17.5q-78 0 -148.5 16.5t-136 36t-128 36t-123.5 16.5h-375 q-49 0 -84 34.5t-35 84.5zM233 276q0 -35 22.5 -57t57.5 -22q33 0 56.5 22.5t23.5 56.5q0 33 -23.5 56.5t-56.5 23.5q-35 0 -57.5 -23.5t-22.5 -56.5zM489 193q70 0 136.5 -16.5t133 -35t133 -35t138.5 -16.5q43 0 84 8t72 27.5t50 52.5t19 82q0 14 -1 26.5t-3 24.5 q35 16 53.5 53t18.5 74q0 39 -20 68q59 49 59 123q0 23 -12.5 43.5t-26.5 34.5q90 0 178 1t178 1q51 0 84 30.5t33 81.5q0 53 -32.5 85t-84.5 32q-172 0 -340 1t-338 1q0 41 16.5 78t35 74.5t34 78.5t15.5 91q0 33 -10.5 65.5t-29 59t-46 44t-64.5 17.5h-11t-11 -2 q-8 -4 -9 -8t-3 -13q-12 -59 -22.5 -123.5t-39.5 -117.5q-29 -51 -73 -88t-85 -78q-29 -31 -49 -56.5t-41.5 -48t-48.5 -42t-65 -35.5h-5v-643z" /> |
|
194 |
<glyph unicode="" horiz-adv-x="1916" d="M0 821q0 51 18.5 94t50 75t75.5 49.5t94 17.5l376 2h134q-23 47 -38.5 98t-15.5 105q0 57 19.5 112.5t54.5 98.5t85 68.5t112 25.5q78 0 109.5 -34t43.5 -84t17.5 -106.5t29.5 -99.5q23 -41 65 -74.5t77 -68.5q16 -18 33.5 -37t33.5 -39q18 -23 33.5 -39t42.5 -31h348 q49 0 84 -34.5t35 -83.5v-643q0 -49 -35 -84t-84 -35h-375q-61 0 -123.5 -16.5t-128 -36t-136 -36t-148.5 -16.5q-70 0 -132.5 17.5t-109.5 52.5t-75.5 90t-28.5 131q-39 45 -56.5 103.5t-7.5 117.5q-29 47 -39 107h-200q-49 0 -93.5 17.5t-76 49t-50 74.5t-18.5 92z M121 821q0 -51 32.5 -81.5t84.5 -30.5q90 0 178 -1t178 -1q-14 -14 -26.5 -35t-12.5 -43q0 -74 59 -123q-20 -29 -20 -68q0 -37 18.5 -73.5t53.5 -53.5q-2 -12 -3 -24.5t-1 -26.5q0 -49 19 -82t50 -52.5t72 -27.5t84 -8q70 0 137.5 16.5t134 35t133 35t135.5 16.5v643h-4 q-41 16 -66.5 35.5t-47 42t-42 48t-48.5 56.5q-41 41 -85 78t-73 88q-29 53 -39 117.5t-23 123.5q-2 8 -3 12.5t-9 8.5q-4 2 -11 2h-11q-37 0 -65 -17.5t-46 -44t-28.5 -59.5t-10.5 -65q0 -49 15.5 -90.5t34 -79t34.5 -74.5t16 -78q-170 0 -337.5 -1t-339.5 -1 q-51 0 -84 -32t-33 -85zM1524 276q0 -35 23.5 -57t56.5 -22q35 0 57 22.5t22 56.5q0 33 -22.5 56.5t-56.5 23.5q-33 0 -56.5 -23.5t-23.5 -56.5z" /> |
|
195 |
<glyph unicode="" horiz-adv-x="1597" d="M0 602q0 61 25.5 111.5t68.5 85.5t98.5 54t112.5 19q53 0 104.5 -15t98.5 -38v133l2 377q0 49 17.5 93t49 76t74.5 50.5t94 18.5q49 0 92.5 -18.5t75 -50.5t49 -76t17.5 -93v-201q59 -10 106 -38q59 10 118 -7.5t104 -56.5q76 0 131 -28.5t90 -76t52 -109.5t17 -132 q0 -78 -16 -148.5t-35.5 -136t-36 -128t-16.5 -124.5v-374q0 -49 -35 -84t-84 -35h-643q-49 0 -84 34.5t-35 84.5v348q-14 27 -30.5 42t-38.5 34q-20 16 -39 33.5t-37 33.5q-35 35 -68.5 77t-74.5 64q-43 25 -99.5 30t-106.5 17.5t-84 44t-34 109.5zM120 591q-1 -7 1 -11 q4 -8 8 -9.5t12 -3.5q59 -12 124 -22t118 -39q51 -29 88 -73t78 -85q31 -29 56.5 -49t48 -41.5t42 -48.5t35.5 -66v-4h643q0 70 16.5 136.5t35 133t35 133t16.5 138.5q0 43 -8.5 84t-28 71.5t-52 50t-81.5 19.5q-14 0 -26.5 -1t-25.5 -3q-16 35 -53 53.5t-74 18.5 q-39 0 -67 -21q-49 59 -123 60q-23 0 -43.5 -12.5t-34.5 -26.5q0 90 -1 178t-1 178q0 51 -30.5 84t-82.5 33q-53 0 -84.5 -33t-31.5 -84q0 -172 -1 -340t-1 -338q-41 0 -78 16.5t-75 35t-79 34t-90 15.5q-33 0 -65.5 -10.5t-59 -29t-43 -46t-16.5 -64.5q0 -4 -1 -11z M1210 -37q0 -35 23.5 -57.5t56.5 -22.5q35 0 57.5 22.5t22.5 57.5q0 33 -22.5 56.5t-57.5 23.5q-33 0 -56.5 -23.5t-23.5 -56.5z" /> |
|
196 |
<glyph unicode="" horiz-adv-x="1597" d="M0 584q0 78 34 109.5t84 44t106.5 17.5t99.5 29q41 23 74.5 65t68.5 77q18 16 36.5 33.5t39.5 33.5q23 18 39 33.5t30 42.5v348q0 49 35 84t84 35h643q49 0 84 -35t35 -84v-375q0 -61 16.5 -123.5t36 -128t35.5 -136t16 -148.5q0 -70 -17 -132.5t-52 -109.5t-90.5 -75.5 t-130.5 -28.5q-45 -39 -103.5 -56.5t-118.5 -7.5q-47 -29 -106 -39v-200q0 -49 -17.5 -93.5t-49 -76t-74.5 -50t-93 -18.5q-51 0 -94 18.5t-74.5 50t-49 75.5t-17.5 94l-2 376v134q-47 -23 -98.5 -38.5t-104.5 -15.5q-57 0 -112.5 19.5t-98.5 54.5t-68.5 85t-25.5 112z M120 595q1 -7 1 -11q0 -37 16.5 -64.5t43 -46t59 -29t65.5 -10.5q49 0 90 15.5t79 34t75 35t78 16.5q0 -170 1 -338t1 -340q0 -51 31.5 -84t84.5 -33q51 0 82 32.5t31 84.5q0 90 1 178t1 178q14 -14 34.5 -26.5t43.5 -12.5q74 0 123 59q29 -20 67 -20q37 0 74 18.5t53 53.5 q12 -2 24.5 -3t27.5 -1q49 0 81.5 19t52 50t28 72t8.5 84q0 70 -16.5 137.5t-35 134t-35 133t-16.5 136.5h-643v-5q-16 -41 -35.5 -66.5t-42 -47t-48 -42t-56.5 -48.5q-41 -41 -78 -85t-88 -73q-53 -29 -117.5 -39t-124.5 -23l-12 -3t-8 -9q-2 -4 -1 -11zM1210 1223 q0 -33 23.5 -56.5t56.5 -23.5q35 0 57.5 23.5t22.5 56.5q0 35 -22.5 57.5t-57.5 22.5q-33 0 -56.5 -23t-23.5 -57z" /> |
|
197 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -29 20 -49l490 -490q20 -20 48.5 -20t49.5 20l74 74q20 20 20 48 t-20 50l-246 246h612q29 0 49.5 19.5t20.5 48.5v104q0 29 -20.5 49.5t-49.5 20.5h-612l246 246q20 20 20 48.5t-20 49.5l-74 74q-20 20 -48 20t-50 -20l-490 -490q-20 -20 -20 -49z" /> |
|
198 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 717q0 -29 20.5 -49.5t48.5 -20.5h613l-246 -246q-20 -20 -20.5 -48.5 t20.5 -49.5l74 -74q20 -20 47.5 -20t50.5 20l489 490q20 20 20.5 49t-20.5 49l-489 490q-20 20 -49 20t-49 -20l-74 -74q-20 -20 -20.5 -48t20.5 -50l246 -246h-613q-29 0 -49 -19.5t-20 -48.5v-104z" /> |
|
199 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -29 20 -49l74 -74q20 -20 48 -20t50 20l246 246v-612q0 -29 19.5 -49.5 t47.5 -20.5h105q29 0 49.5 20.5t20.5 49.5v612l245 -246q20 -20 49 -20t50 20l73 74q20 20 20.5 48t-20.5 50l-489 490q-20 20 -49 20t-49 -20l-490 -490q-20 -20 -20 -49z" /> |
|
200 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 769q0 -28 20 -50l490 -490q20 -20 48.5 -20t49.5 20l489 490q20 20 20.5 49 t-20.5 49l-73 74q-20 20 -48 20t-51 -20l-245 -246v612q0 29 -19.5 49.5t-48.5 20.5h-104q-29 0 -49.5 -20.5t-20.5 -49.5v-612l-246 246q-20 20 -49 20t-49 -20l-74 -74q-20 -20 -20 -48z" /> |
|
201 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 162 63.5 307.5t173 255t254 173t308.5 63.5q162 0 307 -63.5t254.5 -173t173 -255t63.5 -307.5q0 -164 -63.5 -308.5t-173 -254t-254.5 -173t-307 -63.5q-164 0 -308.5 63.5t-254 173t-173 254t-63.5 308.5zM186 1141h4q4 0 12.5 3t8.5 -9q0 -4 -3 -10.5 t11 -6.5q4 0 5 6t3 0l4 -16v-2q0 -4 -5 -6t-3 -6q4 -4 9.5 -4h9.5l4 2l2 2q0 -6 6 -8.5t10 -2.5h2q0 -2 -4 -4t0 -6l23 -4v-2l14 -29q0 -4 -3 -10t-7 -6t-3 3t1 7t-2 7t-15 3q-2 0 -5 -1t-1 -5l12 -26l3 -2l2 -2q-10 0 -13.5 -24t-3.5 -34l4 -18l2 -6v-4l-4 -19l29 -43h6 q2 -4 -2 -8t-2 -8l8 -8q0 -10 4 -14.5t13 -12.5q-2 -12 20.5 -22.5t28.5 -14.5q8 -23 20 -45.5t29 -38.5l2 -14q0 -2 -5 -4t-1 -6l16 -7q4 4 10.5 -8t10.5 -16l-2 -6l12 -17l6 -2l4 8q-4 10 -14 26.5t-20.5 32t-17.5 28t-7 14.5t-2 16t-4 17q6 -4 15 -7.5t15 -7.5 q4 -25 19.5 -40t27.5 -34q-4 -4 0 -5t7 -1q4 -4 4 -14q14 -16 36.5 -44t22.5 -44v-2l-4 -14q6 -16 20.5 -25.5t28.5 -15.5h4q20 -10 41 -21.5t43 -19.5l23 14q8 -2 17 -10t20.5 -18.5t27 -19.5t35.5 -11q14 10 14 -5v-4l25 -30l4 -15q10 -6 20.5 -15t16.5 -20h4 q10 0 16.5 -9t16.5 -9q6 0 6 6q0 14 2 18.5t5 5.5t6 1t3 4l-4 6q-4 0 -6 -5t-6 -1l-14 -8l-17 4l-24 41l8 57q2 4 -7.5 9t-5.5 10q-14 8 -34 8q-4 0 -20.5 -3t-16.5 3t3 16t7 21.5t6 19.5t2 10l13 27l-3 4l-16 4q-4 0 -13 -6t-17.5 -14.5t-14.5 -16.5t-6 -14l-45 -10 q-14 0 -23 12q-4 16 -17 35.5t-13 34.5q0 23 8 43t-6 43q2 0 5 2t1 6l12 14l2 2l2 -2q14 10 37 7t29 14l16 -13q4 -2 9 4.5t5 10.5l-8 4l39 10l2 -6l19 2l22 -14q4 0 8 5t9 1l20 -21q-4 -8 -1 -12t3 -8q0 -6 10.5 -27.5t18.5 -21.5q10 0 9 13t-1 17q0 20 -8 39t-15 39v6 q0 10 12.5 17.5t12.5 9.5q10 8 22.5 16t18.5 19l8 16v10h6t4 6q0 2 -3 3.5t-7 5.5q-4 2 -8 6l6 4q4 6 6 15t-2 16l15 8q-2 -6 4 -8t10 0l10 16q-4 10 -5 7t5 7q10 4 19.5 9.5t19.5 5.5q2 -2 4 -2q6 0 6 2q0 10 -4 12l12 25q14 0 21 12l18 2q6 2 6 8v2l35 10l4 11l-10 14 q2 0 2 4t-4 6t-7 4t-7 4l-4 -2l4 2h6h13t9 9q0 12 -14 12q-18 0 -41.5 -8.5t-32.5 -28.5l-14 -8l18 18l3 6q0 4 -9.5 5.5t-5.5 1.5q18 0 27.5 4t15.5 9t12.5 10t18.5 9q23 -4 44 -2t44 2q6 4 12 8.5t8 10.5l23 4q4 -4 12 2t8 10q0 10 -11 13t-11 14q0 2 1 6t-3 4 q-6 0 -19.5 -6t-19.5 -10q-4 -2 -5 1t-1 7l2 -2l8 4l23 8l4 4q0 6 -7.5 8t-11.5 2t-12 -3t-8 3l2 4q-12 10 -21.5 22.5t-9.5 16.5t1 8.5t-5 4.5q-4 0 -7 -1t-3 5q0 4 -5 17t-14 13l-8 -8q0 -6 -6 -9t-6 -7h-4l-21 -12q-2 4 -5 2t-7 -2h-2l-2 -2q8 0 7 9t-7 9l-16 -4 q-4 0 -4.5 1t2 4t4.5 7t0 8t-6.5 1t-4.5 1h6l5 5q2 2 -1.5 7t-5.5 7l-22 4l-14 12q-2 -2 -7.5 3t-9.5 7l-16 -6l-39 9q-4 0 -8 -2.5t-4 -6.5t4 -6t4 -6t3 -21.5t-5 -13.5l-10 -14q2 -4 7 -7t10 -7.5t9 -10.5t2 -18l-45 -31v-4q0 -8 4 -15t8 -18q10 -4 9.5 -7t-7 -6t-12.5 -6 t-6 -5t-4 -2h-8h-4q0 2 2 3t2 5l-19 12v-2l-8 16q4 10 1 14.5t-3 10.5q0 16 -14.5 16t-30.5 -4q4 2 -1 6.5t-7 4.5q-16 0 -38 14t-36 14q-6 0 -14 -2t-15 -4q4 2 5 10l-13 23l-2 2q-6 0 -14 -5t-8 9q0 2 2 4t0 4q-2 12 5 20.5t11 18.5q4 4 4 8t4 4q8 0 15.5 4.5t17.5 6.5 l2 6q0 4 -21.5 7t-21.5 7l2 2q20 -6 30.5 -7t17.5 2t16.5 8t29.5 14q0 4 -21.5 8t-27.5 8h12q4 0 10.5 -2t10.5 -4q0 -4 6 -5t10 -1l15 10v6l-4 6l22 4q-2 2 1 4t5 2q6 0 12.5 -6t8.5 -6l20 8q-2 2 5.5 3t4.5 6l-14 16q-2 0 -3 3t1 3q10 0 6 10q-8 4 -17 9.5t-20 5.5 q-4 0 -9 -2t-5 -7q0 -4 5 -4t7 -4q4 -4 -2 -4t-6 -2q-8 0 -15 -12t-18 -17q-4 0 -3 2.5t-1 4.5q-2 4 -7 5t-5 5t5 13t-13 9q-8 0 -11.5 -6t-7.5 -12l-22 25l-17 2q0 8 3.5 14t-9.5 16q-6 4 -11 7.5t-11 3.5q-2 0 -9.5 -4.5t-13.5 -8.5t-6 -8t10 -4h-2q-6 0 -6 -8 q0 -2 9.5 -5t13.5 -3q4 2 6 -1.5t6 -3.5l8 3v-5q-2 -2 -2 -4l2 -8l-20 -10q-2 -2 -4 -2t-5 -2q0 -6 5.5 -12.5t-11.5 -6.5l-6 4q0 8 -16.5 13.5t-40 7.5t-47 3t-35.5 1l-33 -10l8 -19q-4 0 -5 -3t3 -5q-4 4 -15 14.5t-15 10.5l-17 4q-35 -2 -78 -33t-84 -72t-75.5 -84 t-53.5 -71zM471 674h2h-2zM487 1413q14 2 25.5 8t24.5 6l6 -4q6 -2 11 -2t9 -4q8 2 17 -2l6 4v8l-2 5l6 -2q6 0 12 10l-2 4q-4 2 -10 4t-10 2t-16.5 -5t-28 -11.5t-29.5 -12.5t-19 -8zM918 86q0 -4 3 -9t3 -9q0 -5 -2 -7q115 20 217 74.5t182 140.5h-2q-8 -4 -14 0l-5 -4 l-12 4h-4l-4 -8l2 8q-6 8 -14 15l-4 2q-4 0 -4 -8q2 16 -8.5 27.5t-26.5 11.5q0 -2 -2 -2h-4l-5 4h7l4 12l-11 8l-2 -2q-14 2 -20 16l-4 2l-2 -2l-4 -2q-12 -4 -21 -8q-12 4 -18 10l-27 -2q0 6 -4 12.5t-12 6.5q-10 0 -20.5 -2t-14.5 -13q0 -4 2 -8t4 -6v-8l-2 -6l-4 -2h-2 l-6 16l6 10q-2 4 -2 10.5t-2 10.5l-2 4h-6l-15 -10h-8l-4 -4q-2 -2 -2 -4t-2 -3l-2 3h-8q-8 -8 -9 -19l3 -4l-9 -6l-2 -4l-6 -4q0 -2 -1 -2t-1 -2v-2v-9l-2 -2v4l-2 2q-2 12 -23 21h-6v-4q2 -6 8.5 -10.5t10.5 -8.5q-2 2 -5 1t-3 -3v-4l14 -20v-39l4 -10q-4 -16 -16 -27v2 l-4 -2l-3 -2l-2 -10l2 -2v-2l-4 4l-2 -13l-12 -4q-6 -4 -5 -11t-5 -11l2 -4l-6 -6q0 -4 -1 -6.5t-1 -6.5l2 -14l6 -4l4 4l2 6l2 -12q0 -4 -4 -8q-6 -4 -12 -9.5t-6 -15.5z" /> |
|
202 |
<glyph unicode="" horiz-adv-x="1593" d="M8 242q0 33 12.5 62.5t34.5 51.5l609 609q-16 66 -17 122q0 98 38 186.5t102.5 153t151.5 102.5t185 38q94 0 181.5 -36t154.5 -101l-442 -162l-43 -236l184 -153l443 159q-10 -92 -50.5 -171t-104 -137t-145 -91t-174.5 -33q-61 0 -127 17l-606 -607q-47 -47 -112 -47 q-68 0 -115 47q-23 23 -50.5 47.5t-52 52t-41 58.5t-16.5 68zM203 242q0 -33 22.5 -56.5t57.5 -23.5q33 0 56 23.5t23 56.5q0 35 -23.5 57.5t-55.5 22.5q-35 0 -57.5 -23t-22.5 -57z" /> |
|
203 |
<glyph unicode="" d="M0 76v217q0 31 22.5 53.5t53.5 22.5h1689q33 0 55.5 -22.5t22.5 -53.5v-217q0 -31 -22.5 -53.5t-55.5 -22.5h-1689q-31 0 -53.5 22.5t-22.5 53.5zM0 662v215q0 31 22.5 53t53.5 22h1689q33 0 55.5 -22.5t22.5 -52.5v-215q0 -33 -22.5 -55.5t-55.5 -22.5h-1689 q-31 0 -53.5 22.5t-22.5 55.5zM0 1243v217q0 31 22.5 53.5t53.5 22.5h1689q33 0 55.5 -22.5t22.5 -53.5v-217q0 -31 -22.5 -53.5t-55.5 -22.5h-1689q-31 0 -53.5 22.5t-22.5 53.5zM752 692h999v154h-999v-154zM1059 109h692v153h-692v-153zM1366 1274h385v153h-385v-153z " /> |
|
204 |
<glyph unicode="" horiz-adv-x="1566" d="M0 1458q0 33 22.5 55.5t55.5 22.5h1411q33 0 55.5 -22.5t22.5 -55.5t-23 -55l-565 -565v-791q0 -33 -22.5 -55.5t-55.5 -22.5t-55 23l-236 235q-23 23 -22 56v555l-565 565q-23 23 -23 55z" /> |
|
205 |
<glyph unicode="" d="M0 115v512h713q-2 -6 -2 -19v-153q0 -55 38.5 -95.5t96.5 -40.5h153q55 0 94.5 40t39.5 96v153q0 12 -3 19h713v-512q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM0 743v371q0 47 34 81t81 34h424v231q0 31 21.5 53.5t53.5 22.5h615q33 0 55.5 -22.5 t22.5 -53.5v-231h422q47 0 80.5 -34t33.5 -81v-371h-1843zM692 1229h461v153h-461v-153zM825 455v153q0 18 21 19h153q18 0 19 -19v-153q0 -18 -19 -19h-153q-20 0 -21 19z" /> |
|
206 |
<glyph unicode="" horiz-adv-x="1536" d="M0 80v477q0 51 24.5 61.5t59.5 -24.5l162 -162l340 338l-338 338l-164 -164q-35 -35 -59.5 -25.5t-24.5 60.5v477q0 31 23 57q27 23 57 23h477q51 0 61.5 -24.5t-24.5 -59.5l-160 -158l338 -338l332 334l-162 162q-35 35 -24.5 59.5t61.5 24.5h477q33 0 55 -23 q25 -25 25 -57v-477q0 -51 -24.5 -61.5t-59.5 24.5l-162 162l-334 -334l338 -336l158 160q35 35 59.5 24.5t24.5 -61.5v-477q0 -35 -25 -55q-23 -25 -55 -25h-477q-51 0 -61.5 24.5t24.5 59.5l166 166l-336 336l-340 -340l162 -162q35 -35 24.5 -59.5t-61.5 -24.5h-477 q-31 0 -55 25q-25 20 -25 55z" /> |
|
207 |
<glyph unicode="" horiz-adv-x="1880" d="M0 852v152q0 18 1 47.5t10 56.5t29.5 46.5t57.5 19.5q-45 29 -71.5 75.5t-26.5 104.5q0 43 16.5 82t46 68.5t68.5 46t82 16.5q45 0 84 -16.5t67.5 -46t46 -68.5t17.5 -82q0 -57 -27.5 -104t-72.5 -76q37 0 57.5 -19.5t29.5 -46.5t11 -56.5t2 -47.5v-152 q-14 -8 -23.5 -18.5t-27.5 -10.5h-328q-16 0 -26.5 10.5t-22.5 18.5zM158 57v387q0 78 45 138.5t98 109.5q10 10 25.5 21.5t33.5 15.5q18 6 41 7t45 5q61 10 130 19.5t135 19.5q-90 57 -144.5 151.5t-54.5 207.5q0 88 34 166.5t92 136t136 91.5t166 34t166 -34t136 -91.5 t92 -136t34 -166.5q0 -113 -54 -207t-145 -152q66 -10 134.5 -19t130.5 -20q23 -4 45 -5t41 -7q18 -4 33.5 -15.5t27.5 -21.5q66 -59 103.5 -116.5t37.5 -131.5v-387q-12 -6 -20 -13t-18.5 -14t-23.5 -14.5t-36 -15.5h-1368q-35 0 -54.5 22.5t-43.5 34.5zM1452 852v152 q0 18 2 47.5t11.5 56.5t30 46.5t56.5 19.5q-45 29 -72.5 75.5t-27.5 104.5q0 43 16.5 82t46 68.5t68.5 46t84 16.5q43 0 82 -16.5t68.5 -46t46 -68.5t16.5 -82q0 -57 -26.5 -104t-71.5 -76q37 0 56.5 -19.5t28.5 -46.5t11 -56.5t2 -47.5v-152q-12 -8 -22.5 -18.5 t-26.5 -10.5h-328q-18 0 -27.5 10.5t-23.5 18.5z" /> |
|
208 |
<glyph unicode="" horiz-adv-x="1597" d="M0 1137q0 88 34 166.5t92 137t136 92.5t168 34q86 0 166 -33t139 -92q8 -8 21.5 -20.5t26 -25t21.5 -25.5t9 -25q0 -18 -12 -31q-6 -8 -25 -12q-47 -10 -88 -22.5t-86 -31.5q-4 -4 -16 -4t-25.5 10.5t-31 21.5t-42 21.5t-57.5 10.5q-35 0 -66.5 -13.5t-54 -37t-36 -54 t-13.5 -67.5q0 -41 17.5 -75t43 -63.5t56.5 -56.5t57 -53l180 -178q23 -25 54.5 -37t66.5 -12q43 0 73 16t46 16q12 0 39 -21.5t55.5 -49t50 -55t21.5 -42.5q0 -29 -36 -51t-83 -38.5t-94 -26t-72 -9.5q-86 0 -164.5 33t-140.5 92l-303 305q-61 59 -94 139.5t-33 166.5z M578 1010q0 29 35.5 51t82.5 38.5t94 26t72 9.5q86 0 166 -33t139 -92l303 -305q61 -59 94 -139.5t33 -166.5q0 -90 -33.5 -167.5t-92 -136t-137.5 -92.5t-167 -34q-86 0 -165.5 34t-139.5 93q-8 8 -21.5 19.5t-25.5 25t-21.5 26.5t-9.5 26q0 18 13 28q6 8 24 12 q47 10 88 22.5t86 33.5q12 4 17 4q12 0 25.5 -10.5t30.5 -21.5t41 -21.5t58 -10.5q72 0 121 49.5t49 120.5q0 41 -17 76t-44 63.5t-56.5 55.5t-56.5 53l-178 180q-53 49 -123 50q-43 0 -72.5 -17.5t-46.5 -17.5q-12 0 -38.5 21.5t-55 49t-50 56t-21.5 41.5z" /> |
|
209 |
<glyph unicode="" horiz-adv-x="1880" d="M0 391q0 70 23.5 132.5t64.5 113.5t96.5 86t120.5 51q-33 41 -51 90t-18 105q0 66 24.5 123t66.5 99t99 66.5t123 24.5q113 0 196 -72q18 76 61.5 141.5t103 113.5t133 75t157.5 27q96 0 182 -37t149.5 -100.5t100.5 -149.5t37 -182q0 -57 -13 -109.5t-36 -99.5 q117 -59 188.5 -170t71.5 -248q0 -98 -37 -183t-101.5 -149.5t-149.5 -101.5t-183 -37h-1018q-80 0 -151.5 30.5t-125 84t-84 125t-30.5 151.5z" /> |
|
210 |
<glyph unicode="" horiz-adv-x="1536" d="M16 72q-39 72 7 141l516 803v366h-78q-33 0 -54.5 22.5t-21.5 55.5q0 31 21.5 53.5t54.5 22.5h614q33 0 55.5 -22.5t22.5 -53.5q0 -33 -22.5 -55.5t-55.5 -22.5h-76v-368l514 -801q45 -70 7 -141q-18 -35 -51 -53.5t-70 -18.5h-1262q-37 0 -69.5 18.5t-51.5 53.5z M377 479h782l-313 490v413h-154v-411z" /> |
|
211 |
<glyph unicode="" horiz-adv-x="1916" d="M0 180q0 86 44 168t113.5 146.5t154.5 103.5t169 39h13q18 25 57 60.5t63 58.5v12v12q-12 12 -28.5 27.5t-35 32t-33.5 32t-23 27.5q-84 -6 -172.5 33t-160 105.5t-116.5 150.5t-45 168q0 98 62.5 154.5t160.5 56.5q82 0 168 -39t155.5 -103.5t114 -146.5t44.5 -168 q0 -10 -1.5 -21.5t-3.5 -21.5l86 -76l34 17q34 18 90.5 46.5t129 65.5t148.5 76t150.5 77t135 69.5t102.5 52t52 26.5q16 8 37 9q14 0 39 -4.5t52.5 -9.5t53 -11t41.5 -8q29 -4 47.5 -26.5t18.5 -51.5q0 -43 -35 -66l-700 -485l700 -485q35 -23 35 -66q0 -29 -18.5 -51.5 t-47.5 -26.5q-16 -4 -41.5 -9t-53 -10t-52.5 -9.5t-39 -4.5q-10 0 -18.5 2.5t-18.5 6.5l-842 430l-86 -76q2 -10 3.5 -21.5t1.5 -21.5q0 -86 -44.5 -168t-114 -146.5t-155.5 -103.5t-168 -39q-98 0 -160.5 56.5t-62.5 154.5zM197 1358q0 -23 11 -49.5t27.5 -51t35 -45 t34.5 -34.5q35 -29 82 -54.5t94 -25.5q10 0 27 4v6q0 23 -11.5 48.5t-27.5 50t-34.5 46t-35.5 35.5q-35 29 -82 54.5t-94 25.5q-14 0 -26 -4v-6zM199 180q0 -6 2 -10q6 0 11 -1t11 -1q41 0 90 24.5t92.5 61.5t72 83t28.5 89q0 4 -1 5t-1 5q-8 2 -23 2q-41 0 -90 -24.5 t-92 -61.5t-71.5 -83t-28.5 -89zM586 616q53 -25 82 -69l108 96l45 -27l1016 703l-172 31l-975 -498l6 -127zM586 920l35 -35q12 29 36.5 41t53.5 26l-43 37q-29 -45 -82 -69zM741 768q0 35 23.5 57.5t58.5 22.5q33 0 55.5 -22.5t22.5 -57.5q0 -33 -22.5 -56.5t-57.5 -23.5 q-33 0 -56.5 23.5t-23.5 56.5zM903 575l762 -389l172 31l-727 502z" /> |
|
212 |
<glyph unicode="" horiz-adv-x="1597" d="M0 385v707q0 33 16.5 70.5t38.5 60.5l258 258q23 23 61 39t70 16h463q31 0 53.5 -22.5t22.5 -53.5v-250q16 8 35.5 13.5t40.5 5.5h463q31 0 53 -22.5t22 -53.5v-1075q0 -33 -22.5 -55.5t-52.5 -22.5h-830q-33 0 -55.5 22.5t-22.5 55.5v229h-536q-33 0 -55.5 22.5 t-22.5 55.5zM154 461h460v293q0 45 10.5 87t45.5 74l159 162v305h-278v-321q0 -31 -22.5 -53.5t-53.5 -22.5h-321v-524zM186 1139h211v211zM768 154h676v921h-279v-321q0 -31 -22.5 -53.5t-52.5 -22.5h-322v-524zM801 831h211v211z" /> |
|
213 |
<glyph unicode="" horiz-adv-x="1470" d="M0 1128q0 90 35 170t94 139.5t139 94.5t170 35q88 0 169 -34t143 -95l655 -656q12 -12 12 -28q0 -10 -11 -26.5t-26.5 -32t-32 -27t-26.5 -11.5q-16 0 -29 13l-655 655q-41 41 -92 61.5t-107 20.5q-57 0 -108 -21.5t-89 -59.5t-59.5 -89t-21.5 -109q0 -55 20.5 -106 t61.5 -92l745 -746q55 -55 133 -55q39 0 74 15.5t60.5 41t41 60.5t15.5 73q0 78 -56 134l-563 563q-29 29 -69 28q-41 0 -71 -29.5t-30 -70.5t29 -70l475 -475q12 -12 12 -28q0 -10 -11 -26.5t-26.5 -32t-32 -27t-26.5 -11.5q-16 0 -29 13l-475 473q-35 37 -55.5 85 t-20.5 99q0 53 20.5 100.5t55.5 83t83.5 56t101.5 20.5q51 0 99 -20.5t85 -55.5l561 -563q102 -102 102 -246q0 -74 -27.5 -137t-74.5 -110t-110.5 -75t-137.5 -28q-143 0 -246 103l-745 745q-61 61 -95 142t-34 169z" /> |
|
214 |
<glyph unicode="" horiz-adv-x="1536" d="M0 154v1228q0 63 45 108.5t109 45.5h1075q63 0 108 -45l154 -154q45 -45 45 -108v-1075q0 -63 -45 -108.5t-109 -45.5h-1228q-63 0 -108.5 45t-45.5 109zM154 846h1075v536h-1075v-536zM846 922v385h190v-385h-190z" /> |
|
215 |
<glyph unicode="" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-1150q-80 0 -136.5 56.5t-56.5 136.5z" /> |
|
216 |
<glyph unicode="" d="M0 78v215q0 31 22.5 53.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -53.5v-215q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM0 659v218q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-218q0 -31 -22.5 -53t-53.5 -22h-1689 q-33 0 -55.5 22.5t-22.5 52.5zM0 1243v217q0 31 22.5 53.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -53.5v-217q0 -31 -22.5 -53.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 53.5z" /> |
|
217 |
<glyph unicode="" d="M0 211q0 39 15.5 75t41 61.5t60.5 40.5t76 15q39 0 73.5 -15t61 -40.5t42 -61.5t15.5 -75q0 -41 -15.5 -76t-42 -60.5t-61.5 -41t-73 -15.5q-80 0 -136.5 56.5t-56.5 136.5zM0 768q0 39 15.5 75t41 61.5t60.5 41t76 15.5q39 0 73.5 -15.5t61 -41t42 -61.5t15.5 -75 q0 -41 -15.5 -76t-42 -60.5t-61.5 -41t-73 -15.5q-41 0 -76 15.5t-60.5 41t-41 60.5t-15.5 76zM0 1325q0 39 15.5 75t41 61.5t60.5 41t76 15.5q39 0 73.5 -15.5t61 -41t42 -61.5t15.5 -75q0 -41 -15.5 -76t-42 -60.5t-61.5 -40.5t-73 -15q-41 0 -76 15t-60.5 40.5t-41 60.5 t-15.5 76zM522 154v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1167q-33 0 -55.5 21.5t-22.5 54.5zM522 711v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5 h-1167q-33 0 -55.5 22.5t-22.5 55.5zM522 1268v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1167q-33 0 -55.5 22.5t-22.5 55.5z" /> |
|
218 |
<glyph unicode="" d="M0 594q0 55 30.5 90t68.5 61.5t69 50t31 56.5q0 29 -17.5 44t-46.5 15q-25 0 -44 -15t-34 -36l-53 37q23 39 58.5 60.5t78.5 21.5q55 0 96.5 -32t41.5 -91q0 -49 -30 -80t-67 -55.5t-67.5 -47t-30.5 -55.5h143v54h66v-115h-289q-2 10 -3 18.5t-1 18.5zM4 55l37 54 q6 -4 12 -10.5t15 -10.5q12 -8 29.5 -14t37.5 -6q35 0 55.5 18t20.5 47q0 31 -23.5 48.5t-58.5 17.5h-23l-16 37l90 108l6 6t7 6l4 6h-9q-4 -2 -14 -2h-92v-49h-66v111h263v-53l-97 -115q41 -6 74 -35t33 -82t-38 -95t-110 -42q-35 0 -60.5 9t-41.5 20q-25 14 -35 26z M14 1434l105 102h67v-360h93v-62h-259v62h93v258v8h-2q-10 -16 -22.5 -28.5t-29.5 -27.5zM522 154v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1167q-33 0 -55.5 21.5t-22.5 54.5zM522 711v114q0 33 22.5 55.5 t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1167q-33 0 -55.5 22.5t-22.5 55.5zM522 1268v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1167q-33 0 -55.5 22.5t-22.5 55.5z " /> |
|
219 |
<glyph unicode="" horiz-adv-x="1536" d="M0 692v152h1536v-152h-1536zM268 1114q0 117 44 202t118 141t170 83t203 27q88 0 176 -20.5t172 -49.5q20 -72 27.5 -156t7.5 -157q0 -10 -1 -22.5t-3 -24.5l-13 -2q-23 2 -50 2t-50 6q-18 59 -44 114.5t-62.5 98.5t-88 68.5t-122.5 25.5q-49 0 -94.5 -13.5t-80 -40 t-56 -66.5t-21.5 -93q0 -59 28.5 -102t75.5 -75t105.5 -54.5t118 -42t113.5 -39t93 -41.5h-696q-33 53 -51.5 110.5t-18.5 120.5zM285 310v63v45l110 2q31 -72 64 -134.5t76 -108.5t104 -71.5t152 -25.5q55 0 110 16.5t100.5 48t74 78.5t28.5 109q0 76 -49 128t-119 88 t-146.5 59.5t-132.5 45.5h617q8 -16 15 -38.5t10.5 -48t5.5 -50t2 -43.5q0 -131 -47.5 -226t-127 -156.5t-186 -91.5t-225.5 -30q-53 0 -93 4t-78 12.5t-78 20.5t-93 29q-12 4 -38 12t-36 16q-8 6 -12 50.5t-6 96.5t-2 100z" /> |
|
220 |
<glyph unicode="" horiz-adv-x="1536" d="M0 0v154h1536v-154h-1536zM0 1532q10 2 19.5 2h19.5q72 0 140.5 -5t137.5 -5q100 0 200.5 2t199.5 6q-4 -16 -1 -36.5t3 -37.5v-8q-66 -10 -108 -7t-65.5 -5t-32.5 -39t-9 -109q0 -137 4 -272t10 -273q8 -147 88 -237t238 -90q125 0 207 29.5t131 88t69.5 146.5t20.5 203 q0 20 -2 65t-5 102.5t-8.5 119t-11.5 113.5t-13 89t-15 45q-33 33 -78 33q-6 0 -23.5 -1t-36 -1t-34 1t-21.5 3l2 82q82 4 163 -3t165 -7q39 0 77.5 5t79.5 5q4 0 9.5 -1t9.5 -1q2 -12 4 -24.5t2 -24.5t-4 -29q-23 -6 -52.5 -8t-58 -7t-48 -16.5t-19.5 -38.5q0 -14 1 -27 t3 -28q2 -6 5 -38.5t5 -79t4 -101.5t4 -103t3 -85t1 -50q0 -37 -2 -80.5t-8 -89t-17.5 -87.5t-29.5 -74q-41 -68 -104.5 -114t-137 -72.5t-153.5 -38t-154 -11.5q-72 0 -144.5 9.5t-140.5 35.5q-96 35 -151 88.5t-84 121t-36 148.5t-7 173v321v42t-1 62.5t-5 60.5t-10 38 q-12 16 -37 23.5t-53.5 10.5t-56.5 3t-44 4z" /> |
|
221 |
<glyph unicode="" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h460v335h-460v-335zM154 565h460v332h-460v-332zM154 975h460v332h-460v-332zM692 154h461v335h-461v-335zM692 565h461v332h-461v-332z M692 975h461v332h-461v-332zM1229 154h461v335h-461v-335zM1229 565h461v332h-461v-332zM1229 975h461v332h-461v-332z" /> |
|
222 |
<glyph unicode="" d="M0 197q0 39 29 61l1579 1247q20 17 47 17q35 0 59 -29q10 -12 29.5 -33.5t38 -44t32 -47.5t13.5 -43q0 -39 -29 -61l-1579 -1248q-20 -16 -47 -16q-37 0 -59 29q-10 12 -30 33.5t-38 44t-31.5 47t-13.5 43.5zM256 922l117 36l37 117l34 -117l119 -36l-119 -37l-34 -117 l-37 117zM373 1229l235 71l72 236l72 -236l235 -71l-235 -72l-72 -235l-72 235zM942 1382l117 37l37 117l37 -117l116 -37l-116 -36l-37 -117l-37 117zM1286 1153l94 -121l369 291l-94 121zM1536 885l117 35l37 118l36 -118l117 -35l-117 -37l-36 -117l-37 117z" /> |
|
223 |
<glyph unicode="" d="M0 358v404q0 25 6 51.5t17.5 53t27 51t31.5 40.5l223 222q16 16 41 31.5t51.5 26.5t53 17.5t51.5 6.5h80v198q0 31 22.5 53.5t52.5 22.5h1108q33 0 55.5 -22.5t22.5 -53.5v-1102q0 -31 -22.5 -53t-55.5 -22h-75v-7q0 -63 -25 -119.5t-65.5 -97.5t-97 -65.5t-120.5 -24.5 q-63 0 -119.5 24.5t-97.5 65.5t-65.5 97.5t-24.5 119.5v7h-307v-7q0 -63 -24.5 -119.5t-65.5 -97.5t-97.5 -65.5t-119.5 -24.5t-119.5 24.5t-97.5 65.5t-65.5 97.5t-24.5 119.5v7h-78q-31 0 -53.5 22.5t-22.5 52.5zM193 700h387v369h-78q-10 0 -31.5 -8t-30.5 -17l-223 -221 q-8 -8 -16 -29.5t-8 -31.5v-62zM346 276q0 -47 34 -80.5t81 -33.5t80.5 33.5t33.5 80.5t-33.5 81t-80.5 34t-81 -33.5t-34 -81.5zM1268 276q0 -47 33.5 -80.5t80.5 -33.5t81 33.5t34 80.5t-33.5 81t-81.5 34q-47 0 -80.5 -33.5t-33.5 -81.5z" /> |
|
224 |
<glyph unicode="" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5q-59 0 -115.5 8.5t-112.5 24.5q23 35 46.5 80t35.5 92l11 41q6 23 16 66t29 112q23 -41 76 -70.5t118 -29.5q96 0 176 41 t136.5 114.5t88 174t31.5 217.5q0 88 -35.5 171t-102.5 147.5t-160 102t-208 37.5q-141 0 -248.5 -46t-179 -118.5t-107.5 -160.5t-36 -174q0 -104 40 -187.5t124 -117.5q31 -10 41 20q2 10 7 31.5t9 32.5q4 16 1 23t-13 22q-53 59 -53 155q0 76 27.5 145.5t78.5 122t124 84 t163 31.5q80 0 142.5 -23.5t105.5 -64.5t64.5 -96t21.5 -121q0 -86 -18.5 -164t-52.5 -136t-80 -92t-103 -34q-31 0 -57.5 12.5t-45 34t-25.5 49t1 60.5q18 76 44.5 151.5t26.5 130.5q0 49 -26.5 84t-81.5 35q-66 0 -110 -58.5t-44 -146.5q-2 -23 2 -45q2 -18 7.5 -40.5 t15.5 -41.5q-33 -141 -53.5 -225t-30.5 -131q-12 -55 -18 -80q-10 -45 -13.5 -93t-1.5 -89q-104 45 -192 119.5t-151.5 169t-98.5 207t-35 235.5z" /> |
|
225 |
<glyph unicode="" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-829q27 39 59.5 95.5t49.5 117.5l10 41q6 25 17.5 68t29.5 112q20 -41 75.5 -70.5t121.5 -29.5q96 0 176 42t137 115.5 t89 175t32 220.5q0 90 -37 173t-103.5 147.5t-161 102.5t-208.5 38q-143 0 -251 -46.5t-180.5 -120t-108.5 -162.5t-36 -175q0 -104 40 -188.5t124 -118.5q14 -6 25.5 -1t15.5 21q4 10 8 31.5t8 34.5q8 23 -12 43q-23 29 -37 67.5t-14 91.5q0 76 27.5 145.5t79 123t124 85 t164.5 31.5q82 0 144.5 -23.5t105.5 -64.5t64.5 -97t21.5 -124q0 -86 -18.5 -164t-52 -136t-81 -93t-104.5 -35q-31 0 -57.5 12.5t-45 34t-25.5 49t1 60.5q18 78 45 154.5t27 131.5q0 49 -26.5 85t-82.5 36q-66 0 -110.5 -59t-44.5 -150q-2 -23 2 -45q4 -43 22 -84 q-35 -141 -54.5 -226t-29.5 -132q-12 -55 -18 -80q-16 -70 -14 -142.5t6 -117.5h-260q-80 0 -136.5 56.5t-56.5 136.5z" /> |
|
226 |
<glyph unicode="" horiz-adv-x="1536" d="M0 342v438q55 -68 120.5 -96.5t153.5 -28.5h36t34 4q-8 -23 -14 -42t-6 -42q0 -41 18 -77.5t43 -67.5q-104 -4 -198.5 -22.5t-186.5 -65.5zM0 1214v129q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5 t-61.5 -41t-75 -15.5h-583q23 39 36 81t13 89q0 70 -21.5 121t-54.5 90t-70.5 69.5t-70.5 57.5t-54.5 53.5t-21.5 59.5q0 49 34 81.5t76 72.5t75.5 99.5t33.5 163.5q0 78 -39 157t-106 122h131l133 76h-428q-129 0 -237.5 -36t-188.5 -143zM2 170q14 57 55 96t96.5 61.5 t115 33t110.5 10.5h31.5t31.5 -2q37 -27 78 -54.5t75 -61.5t55.5 -75t21.5 -92q0 -47 -19 -86h-460q-72 0 -126.5 49t-64.5 121zM102 1094q0 43 11.5 85t35 73.5t59.5 51t85 19.5q68 0 118 -41t81.5 -100.5t47 -128t15.5 -123.5q0 -45 -9 -84t-30.5 -68.5t-56.5 -47 t-84 -17.5q-66 0 -116 39t-85 96t-53.5 123.5t-18.5 122.5zM854 1051h223v-224h109v224h223v108h-223v225h-109v-225h-223v-108z" /> |
|
227 |
<glyph unicode="" horiz-adv-x="1536" d="M0 262q0 100 56.5 166t139.5 105.5t179 56t174 18.5q-23 29 -41.5 64t-18.5 76q0 23 6.5 41t14.5 40q-16 -4 -33.5 -4h-34.5q-68 0 -130 23.5t-108 66.5t-74 101.5t-28 130.5q0 68 25 128t67 109.5t98 84t120 49.5q88 18 176 18h411l-127 -74h-127q72 -43 107 -120.5 t35 -157.5q0 -94 -33 -149.5t-73 -94.5t-72.5 -70.5t-32.5 -78.5q0 -45 44 -82t97 -82t97 -107.5t44 -161.5q0 -102 -50 -175.5t-126.5 -121t-170 -70t-181.5 -22.5q-66 0 -141.5 15.5t-140 50.5t-106.5 90t-42 137zM174 307q0 -68 35 -116t87 -78.5t114.5 -44t117.5 -13.5 q51 0 104.5 11.5t96.5 38t69.5 68.5t26.5 103q0 49 -21.5 89.5t-53 72t-70.5 59t-76 52.5q-14 2 -29.5 3t-29.5 1q-57 0 -123 -12.5t-121 -41t-91 -75.5t-36 -117zM276 1247q0 -53 17.5 -117.5t51.5 -120t82.5 -92t111.5 -36.5q96 0 134 61.5t38 147.5q0 53 -14.5 118.5 t-45 124t-78 97t-112.5 38.5q-47 0 -82 -18t-57.5 -49t-34 -71t-11.5 -83zM999 1206h215v-215h107v215h215v105h-215v217h-107v-217h-215v-105z" /> |
|
228 |
<glyph unicode="" d="M0 78v1382q0 31 22.5 53.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -53.5v-1382q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM154 461q63 0 119.5 -24.5t97.5 -65.5t65.5 -97.5t24.5 -119.5h921q0 63 25 119.5t65.5 97.5t97 65.5t120.5 24.5v614 q-63 0 -120 24.5t-97.5 65.5t-65.5 97.5t-25 119.5h-921q0 -63 -24.5 -119.5t-65.5 -97.5t-97.5 -65.5t-119.5 -24.5v-614zM539 768q0 104 29.5 195.5t81.5 159t122 106.5t150 39t149.5 -39t121.5 -106.5t83 -159t31 -195.5t-31 -195.5t-83 -159t-122 -106.5t-149 -39 q-80 0 -150 39t-122 106.5t-81.5 159t-29.5 195.5zM692 969l94 -99l39 35q8 6 11.5 13.5t7.5 11.5q4 2 8 10h2v-16q0 -8 -1 -16.5t-1 -18.5v-283h-139v-129h438v129h-141v529h-140z" /> |
|
229 |
<glyph unicode="" horiz-adv-x="1228" d="M6 967q20 47 72 47h1075q50 0 70 -47t-17 -84l-536 -537q-27 -23 -56 -22q-29 0 -55 22l-536 537q-37 37 -17 84z" /> |
|
230 |
<glyph unicode="" horiz-adv-x="1228" d="M6 371q-20 47 17 84l536 536q23 23 55 23q31 0 54 -23l538 -536q37 -37 17 -84t-70 -47h-1077q-50 0 -70 47z" /> |
|
231 |
<glyph unicode="" horiz-adv-x="692" d="M0 768q0 33 23 55l538 537q16 16 38 21t44 -5q23 -8 36 -27.5t13 -41.5v-1076q0 -25 -13 -43t-36 -28t-44 -5t-38 21l-538 539q-23 23 -23 53z" /> |
|
232 |
<glyph unicode="" horiz-adv-x="692" d="M0 231v1076q0 49 47 69t84 -16l539 -537q23 -23 22 -55q0 -31 -22 -53l-539 -539q-37 -37 -84 -16q-47 20 -47 71z" /> |
|
233 |
<glyph unicode="" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h692v1153h-692v-1153zM999 154h691v1153h-691v-1153z" /> |
|
234 |
<glyph unicode="" horiz-adv-x="1228" d="M0 584q0 31 22.5 54.5t53.5 23.5h1075q33 0 55.5 -23t22.5 -55q0 -33 -23 -56l-536 -536q-23 -23 -56 -23t-55 23l-536 536q-23 23 -23 56zM0 952q0 33 23 56l536 536q23 23 55 23q33 0 56 -23l536 -536q23 -23 23 -56q0 -31 -22.5 -54.5t-55.5 -23.5h-1075 q-31 0 -53.5 23t-22.5 55z" /> |
|
235 |
<glyph unicode="" horiz-adv-x="1228" d="M0 584q0 31 22.5 54.5t53.5 23.5h1077q31 0 53.5 -23t22.5 -55q0 -33 -23 -56l-536 -536q-23 -23 -56 -23q-35 0 -53 23l-538 536q-23 23 -23 56z" /> |
|
236 |
<glyph unicode="" horiz-adv-x="1228" d="M0 952q0 33 23 56l536 536q23 23 55 23q33 0 56 -23l536 -536q23 -23 23 -56q0 -31 -22.5 -54.5t-53.5 -23.5h-1077q-31 0 -53.5 23t-22.5 55z" /> |
|
237 |
<glyph unicode="" d="M0 115v905q10 -10 20.5 -17.5t20.5 -15.5q129 -96 256 -191.5t252 -195.5q39 -31 82 -62.5t89 -57t96.5 -41t103.5 -15.5q55 0 105 15.5t96 40t89 56t84 64.5q125 100 252 195.5t256 191.5q10 8 20.5 15.5t20.5 17.5v-905q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34 t-34 81zM2 1434q0 41 36 71.5t77 30.5h1614q41 0 76.5 -30.5t35.5 -71.5q0 -31 -18.5 -69t-45 -75t-57 -67.5t-53.5 -48.5q-123 -92 -241.5 -182.5t-239.5 -182.5q-25 -18 -57.5 -45t-67.5 -51.5t-71 -42t-66 -17.5h-2h-2q-31 0 -67 17.5t-70.5 42t-67.5 51.5t-58 45 q-121 92 -239.5 182t-241.5 183q-23 18 -53.5 48.5t-57 67.5t-45 75t-18.5 69z" /> |
|
238 |
<glyph unicode="" horiz-adv-x="1576" d="M0 1376q0 39 15.5 74t41 60.5t60 41t73.5 15.5t74 -15.5t61.5 -41t41 -60.5t14.5 -74t-14.5 -73.5t-41 -60t-61.5 -41t-74 -15.5t-73.5 15.5t-60 41t-41 60t-15.5 73.5zM10 41v991q0 16 12.5 28.5t28.5 12.5h281q16 0 28.5 -12t12.5 -29v-991q0 -16 -12.5 -28.5 t-28.5 -12.5h-281q-16 0 -28.5 12.5t-12.5 28.5zM524 41v991q0 16 12.5 28.5t28.5 12.5h273q33 0 37 -25.5t4 -48.5q57 53 129.5 76t150.5 23q190 0 304 -95.5t114 -293.5v-668q0 -16 -12.5 -28.5t-28.5 -12.5h-289q-16 0 -27.5 12.5t-11.5 28.5v604q0 76 -27.5 116 t-111.5 40q-53 0 -89 -17.5t-56.5 -47t-28.5 -70.5t-8 -88v-537q0 -16 -12.5 -28.5t-28.5 -12.5h-281q-16 0 -28.5 12.5t-12.5 28.5z" /> |
|
239 |
<glyph unicode="" horiz-adv-x="1591" d="M0 662q-4 39 35 45l158 20q12 2 30 -8q12 -8 15 -27q14 -102 63 -191t123 -153.5t169 -101.5t200 -37q115 0 217 44t178 120t120 177t44 218t-44 218t-120 177t-178.5 120t-216.5 44q-94 0 -181.5 -30.5t-158.5 -88.5l159 -159q35 -35 24 -58.5t-58 -23.5h-463 q-16 0 -29.5 6t-24.5 16q-25 25 -24 55v463q0 47 24.5 57.5t59.5 -24.5l162 -162q109 92 238.5 140.5t271.5 48.5q166 0 311 -62.5t253.5 -171t171 -254t62.5 -311.5t-62.5 -311.5t-171 -254t-254 -171t-310.5 -62.5q-150 0 -285 52.5t-241.5 145.5t-176.5 220t-90 275z" /> |
|
240 |
<glyph unicode="" horiz-adv-x="1916" d="M0 651q0 49 37 91t88 42q35 0 68 -22q-20 14 -21 37q0 8 8 24l334 502q14 20 37 21q16 0 24 -9q-25 18 -40 43t-15 56q0 49 38 90t87 41q33 0 62 -19l514 -342q23 -16 36 -40.5t13 -53.5q0 -25 -10.5 -48.5t-26.5 -41.5t-40 -29.5t-48 -11.5q-33 0 -68 23q20 -14 21 -37 q0 -14 -8 -25l-105 -158l227 -151q14 4 28 6t28 2q53 0 94 -29l475 -315q37 -27 58.5 -65.5t21.5 -84.5q0 -74 -52.5 -126t-125.5 -52q-55 0 -99 31l-475 315q-70 47 -75 131l-228 152l-106 -158q-14 -20 -37 -20q-14 0 -25 8q55 -39 56 -100q0 -25 -10.5 -47.5t-28 -41 t-40 -29.5t-46.5 -11q-35 0 -62 18l-514 342q-49 33 -49 92z" /> |
|
241 |
<glyph unicode="" horiz-adv-x="1880" d="M0 627q0 195 73.5 365.5t201.5 298.5t299 202t366 74t366 -74t299 -202t201.5 -299t73.5 -365q0 -78 -14.5 -159t-42 -159t-68.5 -149.5t-92 -130.5q-23 -29 -59 -29h-1328q-37 0 -59 29q-53 59 -93 130.5t-67.5 149.5t-42 159t-14.5 159zM158 627q0 -49 33.5 -83 t82.5 -34t83 34t34 83t-34.5 82.5t-82.5 33.5q-49 0 -82.5 -33.5t-33.5 -82.5zM352 1098q0 -49 35 -84t82 -35q49 0 84 35t35 84t-35 82.5t-84 33.5q-47 0 -82 -33.5t-35 -82.5zM743 313q0 -82 57.5 -139t139.5 -57t139.5 57t57.5 139q0 49 -26 91t-67 71q4 14 15.5 55 t27 95.5t33 114t30.5 110.5t22.5 88t9.5 43q0 23 -17.5 40t-40.5 17q-20 0 -35.5 -12t-21.5 -31l-135 -487q-39 -2 -74 -17.5t-60.5 -42t-40 -61.5t-14.5 -74zM823 1292q0 -49 34 -82.5t83 -33.5t83 33.5t34 82.5t-34 83t-83 34t-83 -34t-34 -83zM1292 1098q0 -49 35 -83 t84 -34t83 34t34 83t-34 82.5t-83 33.5t-84 -33.5t-35 -82.5zM1489 627q0 -49 34 -83t83 -34t82.5 34t33.5 83t-33.5 82.5t-82.5 33.5t-83 -33.5t-34 -82.5z" /> |
|
242 |
<glyph unicode="" horiz-adv-x="1916" d="M0 866q0 123 49 225.5t130 183.5t184.5 139.5t209.5 92.5q94 31 190.5 45.5t194.5 14.5t194.5 -14.5t190.5 -45.5q106 -35 210 -93t185 -139t130 -183.5t49 -225.5t-49 -225t-130 -183t-184.5 -140.5t-210.5 -92.5q-94 -31 -190 -45t-195 -14q-92 0 -180 12 q-92 -72 -195.5 -119t-215.5 -73q-27 -4 -55.5 -10.5t-53.5 -6.5q-16 0 -27.5 11.5t-11.5 27.5q0 12 8.5 21.5t16.5 17.5q31 33 53 60.5t37.5 57.5t25 64.5t17.5 79.5q-78 43 -145.5 100.5t-120 128t-82 153.5t-29.5 175zM160 866q0 -72 24.5 -133t65.5 -113.5t94 -95.5 t111 -75q27 -14 51 -27.5t49 -28.5q-10 -47 -17.5 -94t-19.5 -94q59 29 111.5 64.5t105.5 76.5q55 -8 110.5 -14t112.5 -6q156 0 308 43q84 25 171 68.5t158.5 107t116.5 143.5t45 178t-45 178t-116.5 143.5t-158.5 107.5t-171 69q-152 43 -308 43q-158 0 -307 -43 q-84 -25 -171 -69t-158.5 -107.5t-116.5 -143t-45 -178.5z" /> |
|
243 |
<glyph unicode="" horiz-adv-x="1916" d="M0 997q0 98 40 182.5t106.5 151t150.5 113.5t170 76q76 25 154.5 36t156.5 11q80 0 159 -11.5t155 -35.5q86 -29 170 -76t149.5 -113.5t105 -150.5t39.5 -183q0 -98 -39.5 -182t-105 -149.5t-149.5 -113.5t-170 -77q-154 -47 -314 -47q-37 0 -72.5 3t-72.5 7 q-150 -115 -336 -155q-20 -4 -43 -9.5t-45 -5.5q-12 0 -21.5 9.5t-9.5 23.5q0 10 7.5 17.5l13.5 13.5q51 51 72.5 96t35.5 117q-63 35 -118.5 82t-97.5 104t-66.5 124t-24.5 142zM160 997q0 -72 30.5 -127t77.5 -99t104.5 -78t112.5 -64l-20 -111q33 18 63.5 42t59.5 46 q47 -6 95 -12t95 -6q135 0 264 41q61 18 124 52t114 81t84 105.5t33 129.5q0 72 -33 131.5t-84 105.5t-113.5 80t-124.5 52q-63 23 -129.5 32t-134.5 9q-66 0 -132 -9t-132 -32q-59 -18 -122.5 -52t-115 -80t-84 -105.5t-32.5 -131.5zM649 258l27 16q51 -6 102 -6 q197 0 381 62q111 37 211 99.5t177 147.5t123 190t46 230q0 41 -6 84q90 -72 148.5 -169t58.5 -214q0 -76 -24.5 -142.5t-66.5 -123.5t-97.5 -104t-118.5 -82q14 -72 35.5 -117t72.5 -96q6 -6 13.5 -14.5t7.5 -18.5q0 -16 -10.5 -23.5t-24.5 -7.5q-20 0 -43 5.5t-41 9.5 q-186 41 -336 155q-37 -4 -72.5 -7t-72.5 -3q-129 0 -254 32t-236 97z" /> |
|
244 |
<glyph unicode="" horiz-adv-x="933" d="M0 557q0 8 2 10l209 932q4 16 16.5 26.5t28.5 10.5h344q18 0 31.5 -13.5t13.5 -33.5q0 -6 -1 -10t-3 -11l-180 -524q12 4 47 13.5t81 21.5t95 26.5t93 25.5t75 18.5t37 7.5q18 0 31.5 -13.5t13.5 -33.5q0 -12 -2 -19l-565 -1306q-10 -29 -43 -29q-18 0 -33 13.5t-15 33.5 q0 6 3 10l204 914q-12 -4 -48 -14.5t-82 -22.5t-97 -26.5t-95 -27t-76 -19.5t-38 -7q-20 0 -33.5 14.5t-13.5 32.5z" /> |
|
245 |
<glyph unicode="" d="M0 78v383q0 33 22.5 55.5t55.5 22.5h133v153q0 55 40 94t95 39h518v174h-135q-31 0 -53.5 21.5t-22.5 54.5v385q0 31 22.5 53.5t53.5 22.5h385q31 0 53.5 -22.5t22.5 -53.5v-385q0 -33 -22.5 -54.5t-53.5 -21.5h-135v-174h518q55 0 95 -38.5t40 -94.5v-153h135 q31 0 53.5 -22.5t22.5 -55.5v-383q0 -33 -22.5 -55.5t-53.5 -22.5h-385q-33 0 -54 22.5t-21 55.5v383q0 33 21.5 55.5t53.5 22.5h136v153q0 18 -21 19h-518v-172h135q31 0 53.5 -22.5t22.5 -55.5v-383q0 -33 -22.5 -55.5t-53.5 -22.5h-385q-31 0 -53.5 22.5t-22.5 55.5v383 q0 33 22.5 55.5t53.5 22.5h135v172h-518q-20 0 -20 -19v-153h135q33 0 55.5 -22.5t22.5 -55.5v-383q0 -33 -22.5 -55.5t-55.5 -22.5h-383q-33 0 -55.5 22.5t-22.5 55.5z" /> |
|
246 |
<glyph unicode="" horiz-adv-x="1884" d="M0 770q31 137 109.5 253t193.5 204t257 141t302 66v53q0 35 23.5 57.5t56.5 22.5q35 0 57.5 -22.5t22.5 -57.5v-53q160 -12 303 -65.5t258 -141.5t192.5 -204t108.5 -253q6 -29 -20 -43q-10 -6 -19 -6q-20 0 -28 12q-98 102 -218 103q-86 0 -163.5 -54.5t-130.5 -152.5 q-10 -23 -35 -23t-35 23q-82 150 -213 194v-526q0 -68 -23.5 -127t-63.5 -104.5t-93.5 -71t-114.5 -25.5t-115.5 25.5t-94.5 71t-63.5 104.5t-23.5 127q0 35 23.5 57.5t56.5 22.5q35 0 57.5 -22.5t22.5 -57.5q0 -70 40 -119t97 -49q55 0 95 49t40 119v526 q-131 -45 -213 -194q-10 -23 -35 -23t-34 23q-53 98 -130 152.5t-163 54.5q-121 0 -217 -103q-12 -12 -31 -12q-10 0 -19 6q-25 14 -20 43z" /> |
|
247 |
<glyph unicode="" horiz-adv-x="1597" d="M0 385v1075q0 31 22.5 53.5t55.5 22.5h921q31 0 53.5 -22.5t22.5 -53.5v-231h33h61q25 0 55.5 -13.5t49.5 -29.5l280 -281q18 -18 30.5 -49t12.5 -55v-62v-678q0 -27 -17 -44t-44 -17h-860q-27 0 -44.5 17.5t-17.5 43.5v246h-536q-33 0 -55.5 22.5t-22.5 55.5zM276 1321 q0 -12 9.5 -21.5t21.5 -9.5h461q12 0 21.5 9.5t9.5 21.5v61q0 12 -9.5 21.5t-21.5 9.5h-461q-12 0 -21.5 -9t-9.5 -22v-61zM737 123h738v555h-367q-27 0 -44 17.5t-17 43.5v367h-310v-983zM1169 801h306q0 2 -3.5 8t-5.5 10l-280 279q0 4 -6 4q-2 0 -2 1t-2 1t-3.5 1t-3.5 1 v-305z" /> |
|
248 |
<glyph unicode="" horiz-adv-x="2048" /> |
|
249 |
<glyph unicode="" horiz-adv-x="1536" d="M0 57v379q0 39 20.5 87t54.5 90t74.5 73t81.5 35q-35 -59 -34 -129q0 -59 16 -124t59 -106q-18 -37 -18 -75q0 -72 50 -122t122 -50q37 0 68.5 13t55 36.5t37 55.5t13.5 67t-13.5 66.5t-37 55t-55 38t-68.5 14.5q-18 0 -36.5 -5t-35.5 -14q-12 12 -20 31t-13.5 40.5 t-7.5 41.5t-2 37q0 47 28 86t62 67l142 21q-92 57 -142.5 150.5t-50.5 201.5q0 86 33 162t90 133t133 90t162 33t162 -33t133 -90t90 -133t33 -162q0 -109 -50.5 -202t-142.5 -150l158 -23q18 -16 34.5 -36.5t16.5 -47.5q0 -45 -18 -77q-59 33 -121 32q-45 0 -87 -17 t-77 -46q-6 2 -11 3t-11 1q-47 0 -82 -34t-35 -81t34.5 -80.5t82.5 -33.5q47 0 80.5 33.5t33.5 80.5q0 8 -2 15.5t-4 13.5q16 12 35.5 20.5t42.5 8.5q55 0 95 -39t40 -94q0 -23 -8 -41.5t-19 -34.5q-25 10 -45 10q-47 0 -81.5 -34t-34.5 -81t34.5 -80.5t81.5 -33.5t81 33.5 t34 80.5l-2 4q74 74 74 177q0 74 -41 137q45 70 45 157q0 31 -12 62q41 -4 83 -34t74.5 -72t53 -90t20.5 -89v-379q-10 -6 -22.5 -15t-25.5 -18.5t-26.5 -16.5t-21.5 -7h-1344q-35 0 -52 20.5t-44 36.5zM369 287q0 25 17 41t40 16q25 0 41 -16t16 -41q0 -23 -16 -40.5 t-41 -17.5q-23 0 -40 17.5t-17 40.5z" /> |
|
250 |
<glyph unicode="" horiz-adv-x="1597" /> |
|
251 |
<glyph unicode="" horiz-adv-x="1597" /> |
|
252 |
<glyph unicode="" horiz-adv-x="1597" /> |
|
253 |
<glyph unicode="" horiz-adv-x="1597" /> |
|
254 |
</font> |
|
255 |
</defs></svg> |
gadjo/static/css/gadjo.css | ||
---|---|---|
4 | 4 | |
5 | 5 |
@font-face { |
6 | 6 |
font-family: "FontAwesome"; |
7 |
src: url('fontawesome-webfont.eot'); |
|
8 |
src: url('fontawesome-webfont.eot?#iefix') format('eot'), url('fontawesome-webfont.woff') format('woff'), url('fontawesome-webfont.ttf') format('truetype'), url('fontawesome-webfont.svg#FontAwesome') format('svg');
|
|
7 |
src: url('../xstatic/fonts/fontawesome-webfont.eot');
|
|
8 |
src: url('../xstatic/fonts/fontawesome-webfont.eot?#iefix') format('eot'), url('../xstatic/fonts/fontawesome-webfont.woff') format('woff'), url('../xstatic/fonts/fontawesome-webfont.ttf') format('truetype'), url('../xstatic/fonts/fontawesome-webfont.svg#FontAwesome') format('svg');
|
|
9 | 9 |
font-weight: normal; |
10 | 10 |
font-style: normal; |
11 | 11 |
} |
gadjo/static/css/smoothness/jquery-ui-1.10.4.custom.css | ||
---|---|---|
1 |
/*! jQuery UI - v1.10.4 - 2014-03-25 |
|
2 |
* http://jqueryui.com |
|
3 |
* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css |
|
4 |
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px |
|
5 |
* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ |
|
6 | ||
7 |
/* Layout helpers |
|
8 |
----------------------------------*/ |
|
9 |
.ui-helper-hidden { |
|
10 |
display: none; |
|
11 |
} |
|
12 |
.ui-helper-hidden-accessible { |
|
13 |
border: 0; |
|
14 |
clip: rect(0 0 0 0); |
|
15 |
height: 1px; |
|
16 |
margin: -1px; |
|
17 |
overflow: hidden; |
|
18 |
padding: 0; |
|
19 |
position: absolute; |
|
20 |
width: 1px; |
|
21 |
} |
|
22 |
.ui-helper-reset { |
|
23 |
margin: 0; |
|
24 |
padding: 0; |
|
25 |
border: 0; |
|
26 |
outline: 0; |
|
27 |
line-height: 1.3; |
|
28 |
text-decoration: none; |
|
29 |
font-size: 100%; |
|
30 |
list-style: none; |
|
31 |
} |
|
32 |
.ui-helper-clearfix:before, |
|
33 |
.ui-helper-clearfix:after { |
|
34 |
content: ""; |
|
35 |
display: table; |
|
36 |
border-collapse: collapse; |
|
37 |
} |
|
38 |
.ui-helper-clearfix:after { |
|
39 |
clear: both; |
|
40 |
} |
|
41 |
.ui-helper-clearfix { |
|
42 |
min-height: 0; /* support: IE7 */ |
|
43 |
} |
|
44 |
.ui-helper-zfix { |
|
45 |
width: 100%; |
|
46 |
height: 100%; |
|
47 |
top: 0; |
|
48 |
left: 0; |
|
49 |
position: absolute; |
|
50 |
opacity: 0; |
|
51 |
filter:Alpha(Opacity=0); |
|
52 |
} |
|
53 | ||
54 |
.ui-front { |
|
55 |
z-index: 100; |
|
56 |
} |
|
57 | ||
58 | ||
59 |
/* Interaction Cues |
|
60 |
----------------------------------*/ |
|
61 |
.ui-state-disabled { |
|
62 |
cursor: default !important; |
|
63 |
} |
|
64 | ||
65 | ||
66 |
/* Icons |
|
67 |
----------------------------------*/ |
|
68 | ||
69 |
/* states and images */ |
|
70 |
.ui-icon { |
|
71 |
display: block; |
|
72 |
text-indent: -99999px; |
|
73 |
overflow: hidden; |
|
74 |
background-repeat: no-repeat; |
|
75 |
} |
|
76 | ||
77 | ||
78 |
/* Misc visuals |
|
79 |
----------------------------------*/ |
|
80 | ||
81 |
/* Overlays */ |
|
82 |
.ui-widget-overlay { |
|
83 |
position: fixed; |
|
84 |
top: 0; |
|
85 |
left: 0; |
|
86 |
width: 100%; |
|
87 |
height: 100%; |
|
88 |
} |
|
89 |
.ui-resizable { |
|
90 |
position: relative; |
|
91 |
} |
|
92 |
.ui-resizable-handle { |
|
93 |
position: absolute; |
|
94 |
font-size: 0.1px; |
|
95 |
display: block; |
|
96 |
} |
|
97 |
.ui-resizable-disabled .ui-resizable-handle, |
|
98 |
.ui-resizable-autohide .ui-resizable-handle { |
|
99 |
display: none; |
|
100 |
} |
|
101 |
.ui-resizable-n { |
|
102 |
cursor: n-resize; |
|
103 |
height: 7px; |
|
104 |
width: 100%; |
|
105 |
top: -5px; |
|
106 |
left: 0; |
|
107 |
} |
|
108 |
.ui-resizable-s { |
|
109 |
cursor: s-resize; |
|
110 |
height: 7px; |
|
111 |
width: 100%; |
|
112 |
bottom: -5px; |
|
113 |
left: 0; |
|
114 |
} |
|
115 |
.ui-resizable-e { |
|
116 |
cursor: e-resize; |
|
117 |
width: 7px; |
|
118 |
right: -5px; |
|
119 |
top: 0; |
|
120 |
height: 100%; |
|
121 |
} |
|
122 |
.ui-resizable-w { |
|
123 |
cursor: w-resize; |
|
124 |
width: 7px; |
|
125 |
left: -5px; |
|
126 |
top: 0; |
|
127 |
height: 100%; |
|
128 |
} |
|
129 |
.ui-resizable-se { |
|
130 |
cursor: se-resize; |
|
131 |
width: 12px; |
|
132 |
height: 12px; |
|
133 |
right: 1px; |
|
134 |
bottom: 1px; |
|
135 |
} |
|
136 |
.ui-resizable-sw { |
|
137 |
cursor: sw-resize; |
|
138 |
width: 9px; |
|
139 |
height: 9px; |
|
140 |
left: -5px; |
|
141 |
bottom: -5px; |
|
142 |
} |
|
143 |
.ui-resizable-nw { |
|
144 |
cursor: nw-resize; |
|
145 |
width: 9px; |
|
146 |
height: 9px; |
|
147 |
left: -5px; |
|
148 |
top: -5px; |
|
149 |
} |
|
150 |
.ui-resizable-ne { |
|
151 |
cursor: ne-resize; |
|
152 |
width: 9px; |
|
153 |
height: 9px; |
|
154 |
right: -5px; |
|
155 |
top: -5px; |
|
156 |
} |
|
157 |
.ui-selectable-helper { |
|
158 |
position: absolute; |
|
159 |
z-index: 100; |
|
160 |
border: 1px dotted black; |
|
161 |
} |
|
162 |
.ui-accordion .ui-accordion-header { |
|
163 |
display: block; |
|
164 |
cursor: pointer; |
|
165 |
position: relative; |
|
166 |
margin-top: 2px; |
|
167 |
padding: .5em .5em .5em .7em; |
|
168 |
min-height: 0; /* support: IE7 */ |
|
169 |
} |
|
170 |
.ui-accordion .ui-accordion-icons { |
|
171 |
padding-left: 2.2em; |
|
172 |
} |
|
173 |
.ui-accordion .ui-accordion-noicons { |
|
174 |
padding-left: .7em; |
|
175 |
} |
|
176 |
.ui-accordion .ui-accordion-icons .ui-accordion-icons { |
|
177 |
padding-left: 2.2em; |
|
178 |
} |
|
179 |
.ui-accordion .ui-accordion-header .ui-accordion-header-icon { |
|
180 |
position: absolute; |
|
181 |
left: .5em; |
|
182 |
top: 50%; |
|
183 |
margin-top: -8px; |
|
184 |
} |
|
185 |
.ui-accordion .ui-accordion-content { |
|
186 |
padding: 1em 2.2em; |
|
187 |
border-top: 0; |
|
188 |
overflow: auto; |
|
189 |
} |
|
190 |
.ui-autocomplete { |
|
191 |
position: absolute; |
|
192 |
top: 0; |
|
193 |
left: 0; |
|
194 |
cursor: default; |
|
195 |
} |
|
196 |
.ui-button { |
|
197 |
display: inline-block; |
|
198 |
position: relative; |
|
199 |
padding: 0; |
|
200 |
line-height: normal; |
|
201 |
margin-right: .1em; |
|
202 |
cursor: pointer; |
|
203 |
vertical-align: middle; |
|
204 |
text-align: center; |
|
205 |
overflow: visible; /* removes extra width in IE */ |
|
206 |
} |
|
207 |
.ui-button, |
|
208 |
.ui-button:link, |
|
209 |
.ui-button:visited, |
|
210 |
.ui-button:hover, |
|
211 |
.ui-button:active { |
|
212 |
text-decoration: none; |
|
213 |
} |
|
214 |
/* to make room for the icon, a width needs to be set here */ |
|
215 |
.ui-button-icon-only { |
|
216 |
width: 2.2em; |
|
217 |
} |
|
218 |
/* button elements seem to need a little more width */ |
|
219 |
button.ui-button-icon-only { |
|
220 |
width: 2.4em; |
|
221 |
} |
|
222 |
.ui-button-icons-only { |
|
223 |
width: 3.4em; |
|
224 |
} |
|
225 |
button.ui-button-icons-only { |
|
226 |
width: 3.7em; |
|
227 |
} |
|
228 | ||
229 |
/* button text element */ |
|
230 |
.ui-button .ui-button-text { |
|
231 |
display: block; |
|
232 |
line-height: normal; |
|
233 |
} |
|
234 |
.ui-button-text-only .ui-button-text { |
|
235 |
padding: .4em 1em; |
|
236 |
} |
|
237 |
.ui-button-icon-only .ui-button-text, |
|
238 |
.ui-button-icons-only .ui-button-text { |
|
239 |
padding: .4em; |
|
240 |
text-indent: -9999999px; |
|
241 |
} |
|
242 |
.ui-button-text-icon-primary .ui-button-text, |
|
243 |
.ui-button-text-icons .ui-button-text { |
|
244 |
padding: .4em 1em .4em 2.1em; |
|
245 |
} |
|
246 |
.ui-button-text-icon-secondary .ui-button-text, |
|
247 |
.ui-button-text-icons .ui-button-text { |
|
248 |
padding: .4em 2.1em .4em 1em; |
|
249 |
} |
|
250 |
.ui-button-text-icons .ui-button-text { |
|
251 |
padding-left: 2.1em; |
|
252 |
padding-right: 2.1em; |
|
253 |
} |
|
254 |
/* no icon support for input elements, provide padding by default */ |
|
255 |
input.ui-button { |
|
256 |
padding: .4em 1em; |
|
257 |
} |
|
258 | ||
259 |
/* button icon element(s) */ |
|
260 |
.ui-button-icon-only .ui-icon, |
|
261 |
.ui-button-text-icon-primary .ui-icon, |
|
262 |
.ui-button-text-icon-secondary .ui-icon, |
|
263 |
.ui-button-text-icons .ui-icon, |
|
264 |
.ui-button-icons-only .ui-icon { |
|
265 |
position: absolute; |
|
266 |
top: 50%; |
|
267 |
margin-top: -8px; |
|
268 |
} |
|
269 |
.ui-button-icon-only .ui-icon { |
|
270 |
left: 50%; |
|
271 |
margin-left: -8px; |
|
272 |
} |
|
273 |
.ui-button-text-icon-primary .ui-button-icon-primary, |
|
274 |
.ui-button-text-icons .ui-button-icon-primary, |
|
275 |
.ui-button-icons-only .ui-button-icon-primary { |
|
276 |
left: .5em; |
|
277 |
} |
|
278 |
.ui-button-text-icon-secondary .ui-button-icon-secondary, |
|
279 |
.ui-button-text-icons .ui-button-icon-secondary, |
|
280 |
.ui-button-icons-only .ui-button-icon-secondary { |
|
281 |
right: .5em; |
|
282 |
} |
|
283 | ||
284 |
/* button sets */ |
|
285 |
.ui-buttonset { |
|
286 |
margin-right: 7px; |
|
287 |
} |
|
288 |
.ui-buttonset .ui-button { |
|
289 |
margin-left: 0; |
|
290 |
margin-right: -.3em; |
|
291 |
} |
|
292 | ||
293 |
/* workarounds */ |
|
294 |
/* reset extra padding in Firefox, see h5bp.com/l */ |
|
295 |
input.ui-button::-moz-focus-inner, |
|
296 |
button.ui-button::-moz-focus-inner { |
|
297 |
border: 0; |
|
298 |
padding: 0; |
|
299 |
} |
|
300 |
.ui-datepicker { |
|
301 |
width: 17em; |
|
302 |
padding: .2em .2em 0; |
|
303 |
display: none; |
|
304 |
} |
|
305 |
.ui-datepicker .ui-datepicker-header { |
|
306 |
position: relative; |
|
307 |
padding: .2em 0; |
|
308 |
} |
|
309 |
.ui-datepicker .ui-datepicker-prev, |
|
310 |
.ui-datepicker .ui-datepicker-next { |
|
311 |
position: absolute; |
|
312 |
top: 2px; |
|
313 |
width: 1.8em; |
|
314 |
height: 1.8em; |
|
315 |
} |
|
316 |
.ui-datepicker .ui-datepicker-prev-hover, |
|
317 |
.ui-datepicker .ui-datepicker-next-hover { |
|
318 |
top: 1px; |
|
319 |
} |
|
320 |
.ui-datepicker .ui-datepicker-prev { |
|
321 |
left: 2px; |
|
322 |
} |
|
323 |
.ui-datepicker .ui-datepicker-next { |
|
324 |
right: 2px; |
|
325 |
} |
|
326 |
.ui-datepicker .ui-datepicker-prev-hover { |
|
327 |
left: 1px; |
|
328 |
} |
|
329 |
.ui-datepicker .ui-datepicker-next-hover { |
|
330 |
right: 1px; |
|
331 |
} |
|
332 |
.ui-datepicker .ui-datepicker-prev span, |
|
333 |
.ui-datepicker .ui-datepicker-next span { |
|
334 |
display: block; |
|
335 |
position: absolute; |
|
336 |
left: 50%; |
|
337 |
margin-left: -8px; |
|
338 |
top: 50%; |
|
339 |
margin-top: -8px; |
|
340 |
} |
|
341 |
.ui-datepicker .ui-datepicker-title { |
|
342 |
margin: 0 2.3em; |
|
343 |
line-height: 1.8em; |
|
344 |
text-align: center; |
|
345 |
} |
|
346 |
.ui-datepicker .ui-datepicker-title select { |
|
347 |
font-size: 1em; |
|
348 |
margin: 1px 0; |
|
349 |
} |
|
350 |
.ui-datepicker select.ui-datepicker-month, |
|
351 |
.ui-datepicker select.ui-datepicker-year { |
|
352 |
width: 49%; |
|
353 |
} |
|
354 |
.ui-datepicker table { |
|
355 |
width: 100%; |
|
356 |
font-size: .9em; |
|
357 |
border-collapse: collapse; |
|
358 |
margin: 0 0 .4em; |
|
359 |
} |
|
360 |
.ui-datepicker th { |
|
361 |
padding: .7em .3em; |
|
362 |
text-align: center; |
|
363 |
font-weight: bold; |
|
364 |
border: 0; |
|
365 |
} |
|
366 |
.ui-datepicker td { |
|
367 |
border: 0; |
|
368 |
padding: 1px; |
|
369 |
} |
|
370 |
.ui-datepicker td span, |
|
371 |
.ui-datepicker td a { |
|
372 |
display: block; |
|
373 |
padding: .2em; |
|
374 |
text-align: right; |
|
375 |
text-decoration: none; |
|
376 |
} |
|
377 |
.ui-datepicker .ui-datepicker-buttonpane { |
|
378 |
background-image: none; |
|
379 |
margin: .7em 0 0 0; |
|
380 |
padding: 0 .2em; |
|
381 |
border-left: 0; |
|
382 |
border-right: 0; |
|
383 |
border-bottom: 0; |
|
384 |
} |
|
385 |
.ui-datepicker .ui-datepicker-buttonpane button { |
|
386 |
float: right; |
|
387 |
margin: .5em .2em .4em; |
|
388 |
cursor: pointer; |
|
389 |
padding: .2em .6em .3em .6em; |
|
390 |
width: auto; |
|
391 |
overflow: visible; |
|
392 |
} |
|
393 |
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { |
|
394 |
float: left; |
|
395 |
} |
|
396 | ||
397 |
/* with multiple calendars */ |
|
398 |
.ui-datepicker.ui-datepicker-multi { |
|
399 |
width: auto; |
|
400 |
} |
|
401 |
.ui-datepicker-multi .ui-datepicker-group { |
|
402 |
float: left; |
|
403 |
} |
|
404 |
.ui-datepicker-multi .ui-datepicker-group table { |
|
405 |
width: 95%; |
|
406 |
margin: 0 auto .4em; |
|
407 |
} |
|
408 |
.ui-datepicker-multi-2 .ui-datepicker-group { |
|
409 |
width: 50%; |
|
410 |
} |
|
411 |
.ui-datepicker-multi-3 .ui-datepicker-group { |
|
412 |
width: 33.3%; |
|
413 |
} |
|
414 |
.ui-datepicker-multi-4 .ui-datepicker-group { |
|
415 |
width: 25%; |
|
416 |
} |
|
417 |
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, |
|
418 |
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { |
|
419 |
border-left-width: 0; |
|
420 |
} |
|
421 |
.ui-datepicker-multi .ui-datepicker-buttonpane { |
|
422 |
clear: left; |
|
423 |
} |
|
424 |
.ui-datepicker-row-break { |
|
425 |
clear: both; |
|
426 |
width: 100%; |
|
427 |
font-size: 0; |
|
428 |
} |
|
429 | ||
430 |
/* RTL support */ |
|
431 |
.ui-datepicker-rtl { |
|
432 |
direction: rtl; |
|
433 |
} |
|
434 |
.ui-datepicker-rtl .ui-datepicker-prev { |
|
435 |
right: 2px; |
|
436 |
left: auto; |
|
437 |
} |
|
438 |
.ui-datepicker-rtl .ui-datepicker-next { |
|
439 |
left: 2px; |
|
440 |
right: auto; |
|
441 |
} |
|
442 |
.ui-datepicker-rtl .ui-datepicker-prev:hover { |
|
443 |
right: 1px; |
|
444 |
left: auto; |
|
445 |
} |
|
446 |
.ui-datepicker-rtl .ui-datepicker-next:hover { |
|
447 |
left: 1px; |
|
448 |
right: auto; |
|
449 |
} |
|
450 |
.ui-datepicker-rtl .ui-datepicker-buttonpane { |
|
451 |
clear: right; |
|
452 |
} |
|
453 |
.ui-datepicker-rtl .ui-datepicker-buttonpane button { |
|
454 |
float: left; |
|
455 |
} |
|
456 |
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, |
|
457 |
.ui-datepicker-rtl .ui-datepicker-group { |
|
458 |
float: right; |
|
459 |
} |
|
460 |
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, |
|
461 |
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { |
|
462 |
border-right-width: 0; |
|
463 |
border-left-width: 1px; |
|
464 |
} |
|
465 |
.ui-dialog { |
|
466 |
overflow: hidden; |
|
467 |
position: absolute; |
|
468 |
top: 0; |
|
469 |
left: 0; |
|
470 |
padding: .2em; |
|
471 |
outline: 0; |
|
472 |
} |
|
473 |
.ui-dialog .ui-dialog-titlebar { |
|
474 |
padding: .4em 1em; |
|
475 |
position: relative; |
|
476 |
} |
|
477 |
.ui-dialog .ui-dialog-title { |
|
478 |
float: left; |
|
479 |
margin: .1em 0; |
|
480 |
white-space: nowrap; |
|
481 |
width: 90%; |
|
482 |
overflow: hidden; |
|
483 |
text-overflow: ellipsis; |
|
484 |
} |
|
485 |
.ui-dialog .ui-dialog-titlebar-close { |
|
486 |
position: absolute; |
|
487 |
right: .3em; |
|
488 |
top: 50%; |
|
489 |
width: 20px; |
|
490 |
margin: -10px 0 0 0; |
|
491 |
padding: 1px; |
|
492 |
height: 20px; |
|
493 |
} |
|
494 |
.ui-dialog .ui-dialog-content { |
|
495 |
position: relative; |
|
496 |
border: 0; |
|
497 |
padding: .5em 1em; |
|
498 |
background: none; |
|
499 |
overflow: auto; |
|
500 |
} |
|
501 |
.ui-dialog .ui-dialog-buttonpane { |
|
502 |
text-align: left; |
|
503 |
border-width: 1px 0 0 0; |
|
504 |
background-image: none; |
|
505 |
margin-top: .5em; |
|
506 |
padding: .3em 1em .5em .4em; |
|
507 |
} |
|
508 |
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { |
|
509 |
float: right; |
|
510 |
} |
|
511 |
.ui-dialog .ui-dialog-buttonpane button { |
|
512 |
margin: .5em .4em .5em 0; |
|
513 |
cursor: pointer; |
|
514 |
} |
|
515 |
.ui-dialog .ui-resizable-se { |
|
516 |
width: 12px; |
|
517 |
height: 12px; |
|
518 |
right: -5px; |
|
519 |
bottom: -5px; |
|
520 |
background-position: 16px 16px; |
|
521 |
} |
|
522 |
.ui-draggable .ui-dialog-titlebar { |
|
523 |
cursor: move; |
|
524 |
} |
|
525 |
.ui-menu { |
|
526 |
list-style: none; |
|
527 |
padding: 2px; |
|
528 |
margin: 0; |
|
529 |
display: block; |
|
530 |
outline: none; |
|
531 |
} |
|
532 |
.ui-menu .ui-menu { |
|
533 |
margin-top: -3px; |
|
534 |
position: absolute; |
|
535 |
} |
|
536 |
.ui-menu .ui-menu-item { |
|
537 |
margin: 0; |
|
538 |
padding: 0; |
|
539 |
width: 100%; |
|
540 |
/* support: IE10, see #8844 */ |
|
541 |
list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); |
|
542 |
} |
|
543 |
.ui-menu .ui-menu-divider { |
|
544 |
margin: 5px -2px 5px -2px; |
|
545 |
height: 0; |
|
546 |
font-size: 0; |
|
547 |
line-height: 0; |
|
548 |
border-width: 1px 0 0 0; |
|
549 |
} |
|
550 |
.ui-menu .ui-menu-item a { |
|
551 |
text-decoration: none; |
|
552 |
display: block; |
|
553 |
padding: 2px .4em; |
|
554 |
line-height: 1.5; |
|
555 |
min-height: 0; /* support: IE7 */ |
|
556 |
font-weight: normal; |
|
557 |
} |
|
558 |
.ui-menu .ui-menu-item a.ui-state-focus, |
|
559 |
.ui-menu .ui-menu-item a.ui-state-active { |
|
560 |
font-weight: normal; |
|
561 |
margin: -1px; |
|
562 |
} |
|
563 | ||
564 |
.ui-menu .ui-state-disabled { |
|
565 |
font-weight: normal; |
|
566 |
margin: .4em 0 .2em; |
|
567 |
line-height: 1.5; |
|
568 |
} |
|
569 |
.ui-menu .ui-state-disabled a { |
|
570 |
cursor: default; |
|
571 |
} |
|
572 | ||
573 |
/* icon support */ |
|
574 |
.ui-menu-icons { |
|
575 |
position: relative; |
|
576 |
} |
|
577 |
.ui-menu-icons .ui-menu-item a { |
|
578 |
position: relative; |
|
579 |
padding-left: 2em; |
|
580 |
} |
|
581 | ||
582 |
/* left-aligned */ |
|
583 |
.ui-menu .ui-icon { |
|
584 |
position: absolute; |
|
585 |
top: .2em; |
|
586 |
left: .2em; |
|
587 |
} |
|
588 | ||
589 |
/* right-aligned */ |
|
590 |
.ui-menu .ui-menu-icon { |
|
591 |
position: static; |
|
592 |
float: right; |
|
593 |
} |
|
594 |
.ui-progressbar { |
|
595 |
height: 2em; |
|
596 |
text-align: left; |
|
597 |
overflow: hidden; |
|
598 |
} |
|
599 |
.ui-progressbar .ui-progressbar-value { |
|
600 |
margin: -1px; |
|
601 |
height: 100%; |
|
602 |
} |
|
603 |
.ui-progressbar .ui-progressbar-overlay { |
|
604 |
background: url("images/animated-overlay.gif"); |
|
605 |
height: 100%; |
|
606 |
filter: alpha(opacity=25); |
|
607 |
opacity: 0.25; |
|
608 |
} |
|
609 |
.ui-progressbar-indeterminate .ui-progressbar-value { |
|
610 |
background-image: none; |
|
611 |
} |
|
612 |
.ui-slider { |
|
613 |
position: relative; |
|
614 |
text-align: left; |
|
615 |
} |
|
616 |
.ui-slider .ui-slider-handle { |
|
617 |
position: absolute; |
|
618 |
z-index: 2; |
|
619 |
width: 1.2em; |
|
620 |
height: 1.2em; |
|
621 |
cursor: default; |
|
622 |
} |
|
623 |
.ui-slider .ui-slider-range { |
|
624 |
position: absolute; |
|
625 |
z-index: 1; |
|
626 |
font-size: .7em; |
|
627 |
display: block; |
|
628 |
border: 0; |
|
629 |
background-position: 0 0; |
|
630 |
} |
|
631 | ||
632 |
/* For IE8 - See #6727 */ |
|
633 |
.ui-slider.ui-state-disabled .ui-slider-handle, |
|
634 |
.ui-slider.ui-state-disabled .ui-slider-range { |
|
635 |
filter: inherit; |
|
636 |
} |
|
637 | ||
638 |
.ui-slider-horizontal { |
|
639 |
height: .8em; |
|
640 |
} |
|
641 |
.ui-slider-horizontal .ui-slider-handle { |
|
642 |
top: -.3em; |
|
643 |
margin-left: -.6em; |
|
644 |
} |
|
645 |
.ui-slider-horizontal .ui-slider-range { |
|
646 |
top: 0; |
|
647 |
height: 100%; |
|
648 |
} |
|
649 |
.ui-slider-horizontal .ui-slider-range-min { |
|
650 |
left: 0; |
|
651 |
} |
|
652 |
.ui-slider-horizontal .ui-slider-range-max { |
|
653 |
right: 0; |
|
654 |
} |
|
655 | ||
656 |
.ui-slider-vertical { |
|
657 |
width: .8em; |
|
658 |
height: 100px; |
|
659 |
} |
|
660 |
.ui-slider-vertical .ui-slider-handle { |
|
661 |
left: -.3em; |
|
662 |
margin-left: 0; |
|
663 |
margin-bottom: -.6em; |
|
664 |
} |
|
665 |
.ui-slider-vertical .ui-slider-range { |
|
666 |
left: 0; |
|
667 |
width: 100%; |
|
668 |
} |
|
669 |
.ui-slider-vertical .ui-slider-range-min { |
|
670 |
bottom: 0; |
|
671 |
} |
|
672 |
.ui-slider-vertical .ui-slider-range-max { |
|
673 |
top: 0; |
|
674 |
} |
|
675 |
.ui-spinner { |
|
676 |
position: relative; |
|
677 |
display: inline-block; |
|
678 |
overflow: hidden; |
|
679 |
padding: 0; |
|
680 |
vertical-align: middle; |
|
681 |
} |
|
682 |
.ui-spinner-input { |
|
683 |
border: none; |
|
684 |
background: none; |
|
685 |
color: inherit; |
|
686 |
padding: 0; |
|
687 |
margin: .2em 0; |
|
688 |
vertical-align: middle; |
|
689 |
margin-left: .4em; |
|
690 |
margin-right: 22px; |
|
691 |
} |
|
692 |
.ui-spinner-button { |
|
693 |
width: 16px; |
|
694 |
height: 50%; |
|
695 |
font-size: .5em; |
|
696 |
padding: 0; |
|
697 |
margin: 0; |
|
698 |
text-align: center; |
|
699 |
position: absolute; |
|
700 |
cursor: default; |
|
701 |
display: block; |
|
702 |
overflow: hidden; |
|
703 |
right: 0; |
|
704 |
} |
|
705 |
/* more specificity required here to override default borders */ |
|
706 |
.ui-spinner a.ui-spinner-button { |
|
707 |
border-top: none; |
|
708 |
border-bottom: none; |
|
709 |
border-right: none; |
|
710 |
} |
|
711 |
/* vertically center icon */ |
|
712 |
.ui-spinner .ui-icon { |
|
713 |
position: absolute; |
|
714 |
margin-top: -8px; |
|
715 |
top: 50%; |
|
716 |
left: 0; |
|
717 |
} |
|
718 |
.ui-spinner-up { |
|
719 |
top: 0; |
|
720 |
} |
|
721 |
.ui-spinner-down { |
|
722 |
bottom: 0; |
|
723 |
} |
|
724 | ||
725 |
/* TR overrides */ |
|
726 |
.ui-spinner .ui-icon-triangle-1-s { |
|
727 |
/* need to fix icons sprite */ |
|
728 |
background-position: -65px -16px; |
|
729 |
} |
|
730 |
.ui-tabs { |
|
731 |
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ |
|
732 |
padding: .2em; |
|
733 |
} |
|
734 |
.ui-tabs .ui-tabs-nav { |
|
735 |
margin: 0; |
|
736 |
padding: .2em .2em 0; |
|
737 |
} |
|
738 |
.ui-tabs .ui-tabs-nav li { |
|
739 |
list-style: none; |
|
740 |
float: left; |
|
741 |
position: relative; |
|
742 |
top: 0; |
|
743 |
margin: 1px .2em 0 0; |
|
744 |
border-bottom-width: 0; |
|
745 |
padding: 0; |
|
746 |
white-space: nowrap; |
|
747 |
} |
|
748 |
.ui-tabs .ui-tabs-nav .ui-tabs-anchor { |
|
749 |
float: left; |
|
750 |
padding: .5em 1em; |
|
751 |
text-decoration: none; |
|
752 |
} |
|
753 |
.ui-tabs .ui-tabs-nav li.ui-tabs-active { |
|
754 |
margin-bottom: -1px; |
|
755 |
padding-bottom: 1px; |
|
756 |
} |
|
757 |
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, |
|
758 |
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, |
|
759 |
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { |
|
760 |
cursor: text; |
|
761 |
} |
|
762 |
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { |
|
763 |
cursor: pointer; |
|
764 |
} |
|
765 |
.ui-tabs .ui-tabs-panel { |
|
766 |
display: block; |
|
767 |
border-width: 0; |
|
768 |
padding: 1em 1.4em; |
|
769 |
background: none; |
|
770 |
} |
|
771 |
.ui-tooltip { |
|
772 |
padding: 8px; |
|
773 |
position: absolute; |
|
774 |
z-index: 9999; |
|
775 |
max-width: 300px; |
|
776 |
-webkit-box-shadow: 0 0 5px #aaa; |
|
777 |
box-shadow: 0 0 5px #aaa; |
|
778 |
} |
|
779 |
body .ui-tooltip { |
|
780 |
border-width: 2px; |
|
781 |
} |
|
782 | ||
783 |
/* Component containers |
|
784 |
----------------------------------*/ |
|
785 |
.ui-widget { |
|
786 |
font-family: Verdana,Arial,sans-serif; |
|
787 |
font-size: 1.1em; |
|
788 |
} |
|
789 |
.ui-widget .ui-widget { |
|
790 |
font-size: 1em; |
|
791 |
} |
|
792 |
.ui-widget input, |
|
793 |
.ui-widget select, |
|
794 |
.ui-widget textarea, |
|
795 |
.ui-widget button { |
|
796 |
font-family: Verdana,Arial,sans-serif; |
|
797 |
font-size: 1em; |
|
798 |
} |
|
799 |
.ui-widget-content { |
|
800 |
border: 1px solid #aaaaaa; |
|
801 |
background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; |
|
802 |
color: #222222; |
|
803 |
} |
|
804 |
.ui-widget-content a { |
|
805 |
color: #222222; |
|
806 |
} |
|
807 |
.ui-widget-header { |
|
808 |
border: 1px solid #aaaaaa; |
|
809 |
background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; |
|
810 |
color: #222222; |
|
811 |
font-weight: bold; |
|
812 |
} |
|
813 |
.ui-widget-header a { |
|
814 |
color: #222222; |
|
815 |
} |
|
816 | ||
817 |
/* Interaction states |
|
818 |
----------------------------------*/ |
|
819 |
.ui-state-default, |
|
820 |
.ui-widget-content .ui-state-default, |
|
821 |
.ui-widget-header .ui-state-default { |
|
822 |
border: 1px solid #d3d3d3; |
|
823 |
background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; |
|
824 |
font-weight: normal; |
|
825 |
color: #555555; |
|
826 |
} |
|
827 |
.ui-state-default a, |
|
828 |
.ui-state-default a:link, |
|
829 |
.ui-state-default a:visited { |
|
830 |
color: #555555; |
|
831 |
text-decoration: none; |
|
832 |
} |
|
833 |
.ui-state-hover, |
|
834 |
.ui-widget-content .ui-state-hover, |
|
835 |
.ui-widget-header .ui-state-hover, |
|
836 |
.ui-state-focus, |
|
837 |
.ui-widget-content .ui-state-focus, |
|
838 |
.ui-widget-header .ui-state-focus { |
|
839 |
border: 1px solid #999999; |
|
840 |
background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; |
|
841 |
font-weight: normal; |
|
842 |
color: #212121; |
|
843 |
} |
|
844 |
.ui-state-hover a, |
|
845 |
.ui-state-hover a:hover, |
|
846 |
.ui-state-hover a:link, |
|
847 |
.ui-state-hover a:visited, |
|
848 |
.ui-state-focus a, |
|
849 |
.ui-state-focus a:hover, |
|
850 |
.ui-state-focus a:link, |
|
851 |
.ui-state-focus a:visited { |
|
852 |
color: #212121; |
|
853 |
text-decoration: none; |
|
854 |
} |
|
855 |
.ui-state-active, |
|
856 |
.ui-widget-content .ui-state-active, |
|
857 |
.ui-widget-header .ui-state-active { |
|
858 |
border: 1px solid #aaaaaa; |
|
859 |
background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; |
|
860 |
font-weight: normal; |
|
861 |
color: #212121; |
|
862 |
} |
|
863 |
.ui-state-active a, |
|
864 |
.ui-state-active a:link, |
|
865 |
.ui-state-active a:visited { |
|
866 |
color: #212121; |
|
867 |
text-decoration: none; |
|
868 |
} |
|
869 | ||
870 |
/* Interaction Cues |
|
871 |
----------------------------------*/ |
|
872 |
.ui-state-highlight, |
|
873 |
.ui-widget-content .ui-state-highlight, |
|
874 |
.ui-widget-header .ui-state-highlight { |
|
875 |
border: 1px solid #fcefa1; |
|
876 |
background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; |
|
877 |
color: #363636; |
|
878 |
} |
|
879 |
.ui-state-highlight a, |
|
880 |
.ui-widget-content .ui-state-highlight a, |
|
881 |
.ui-widget-header .ui-state-highlight a { |
|
882 |
color: #363636; |
|
883 |
} |
|
884 |
.ui-state-error, |
|
885 |
.ui-widget-content .ui-state-error, |
|
886 |
.ui-widget-header .ui-state-error { |
|
887 |
border: 1px solid #cd0a0a; |
|
888 |
background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; |
|
889 |
color: #cd0a0a; |
|
890 |
} |
|
891 |
.ui-state-error a, |
|
892 |
.ui-widget-content .ui-state-error a, |
|
893 |
.ui-widget-header .ui-state-error a { |
|
894 |
color: #cd0a0a; |
|
895 |
} |
|
896 |
.ui-state-error-text, |
|
897 |
.ui-widget-content .ui-state-error-text, |
|
898 |
.ui-widget-header .ui-state-error-text { |
|
899 |
color: #cd0a0a; |
|
900 |
} |
|
901 |
.ui-priority-primary, |
|
902 |
.ui-widget-content .ui-priority-primary, |
|
903 |
.ui-widget-header .ui-priority-primary { |
|
904 |
font-weight: bold; |
|
905 |
} |
|
906 |
.ui-priority-secondary, |
|
907 |
.ui-widget-content .ui-priority-secondary, |
|
908 |
.ui-widget-header .ui-priority-secondary { |
|
909 |
opacity: .7; |
|
910 |
filter:Alpha(Opacity=70); |
|
911 |
font-weight: normal; |
|
912 |
} |
|
913 |
.ui-state-disabled, |
|
914 |
.ui-widget-content .ui-state-disabled, |
|
915 |
.ui-widget-header .ui-state-disabled { |
|
916 |
opacity: .35; |
|
917 |
filter:Alpha(Opacity=35); |
|
918 |
background-image: none; |
|
919 |
} |
|
920 |
.ui-state-disabled .ui-icon { |
|
921 |
filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ |
|
922 |
} |
|
923 | ||
924 |
/* Icons |
|
925 |
----------------------------------*/ |
|
926 | ||
927 |
/* states and images */ |
|
928 |
.ui-icon { |
|
929 |
width: 16px; |
|
930 |
height: 16px; |
|
931 |
} |
|
932 |
.ui-icon, |
|
933 |
.ui-widget-content .ui-icon { |
|
934 |
background-image: url(images/ui-icons_222222_256x240.png); |
|
935 |
} |
|
936 |
.ui-widget-header .ui-icon { |
|
937 |
background-image: url(images/ui-icons_222222_256x240.png); |
|
938 |
} |
|
939 |
.ui-state-default .ui-icon { |
|
940 |
background-image: url(images/ui-icons_888888_256x240.png); |
|
941 |
} |
|
942 |
.ui-state-hover .ui-icon, |
|
943 |
.ui-state-focus .ui-icon { |
|
944 |
background-image: url(images/ui-icons_454545_256x240.png); |
|
945 |
} |
|
946 |
.ui-state-active .ui-icon { |
|
947 |
background-image: url(images/ui-icons_454545_256x240.png); |
|
948 |
} |
|
949 |
.ui-state-highlight .ui-icon { |
|
950 |
background-image: url(images/ui-icons_2e83ff_256x240.png); |
|
951 |
} |
|
952 |
.ui-state-error .ui-icon, |
|
953 |
.ui-state-error-text .ui-icon { |
|
954 |
background-image: url(images/ui-icons_cd0a0a_256x240.png); |
|
955 |
} |
|
956 | ||
957 |
/* positioning */ |
|
958 |
.ui-icon-blank { background-position: 16px 16px; } |
|
959 |
.ui-icon-carat-1-n { background-position: 0 0; } |
|
960 |
.ui-icon-carat-1-ne { background-position: -16px 0; } |
|
961 |
.ui-icon-carat-1-e { background-position: -32px 0; } |
|
962 |
.ui-icon-carat-1-se { background-position: -48px 0; } |
|
963 |
.ui-icon-carat-1-s { background-position: -64px 0; } |
|
964 |
.ui-icon-carat-1-sw { background-position: -80px 0; } |
|
965 |
.ui-icon-carat-1-w { background-position: -96px 0; } |
|
966 |
.ui-icon-carat-1-nw { background-position: -112px 0; } |
|
967 |
.ui-icon-carat-2-n-s { background-position: -128px 0; } |
|
968 |
.ui-icon-carat-2-e-w { background-position: -144px 0; } |
|
969 |
.ui-icon-triangle-1-n { background-position: 0 -16px; } |
|
970 |
.ui-icon-triangle-1-ne { background-position: -16px -16px; } |
|
971 |
.ui-icon-triangle-1-e { background-position: -32px -16px; } |
|
972 |
.ui-icon-triangle-1-se { background-position: -48px -16px; } |
|
973 |
.ui-icon-triangle-1-s { background-position: -64px -16px; } |
|
974 |
.ui-icon-triangle-1-sw { background-position: -80px -16px; } |
|
975 |
.ui-icon-triangle-1-w { background-position: -96px -16px; } |
|
976 |
.ui-icon-triangle-1-nw { background-position: -112px -16px; } |
|
977 |
.ui-icon-triangle-2-n-s { background-position: -128px -16px; } |
|
978 |
.ui-icon-triangle-2-e-w { background-position: -144px -16px; } |
|
979 |
.ui-icon-arrow-1-n { background-position: 0 -32px; } |
|
980 |
.ui-icon-arrow-1-ne { background-position: -16px -32px; } |
|
981 |
.ui-icon-arrow-1-e { background-position: -32px -32px; } |
|
982 |
.ui-icon-arrow-1-se { background-position: -48px -32px; } |
|
983 |
.ui-icon-arrow-1-s { background-position: -64px -32px; } |
|
984 |
.ui-icon-arrow-1-sw { background-position: -80px -32px; } |
|
985 |
.ui-icon-arrow-1-w { background-position: -96px -32px; } |
|
986 |
.ui-icon-arrow-1-nw { background-position: -112px -32px; } |
|
987 |
.ui-icon-arrow-2-n-s { background-position: -128px -32px; } |
|
988 |
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } |
|
989 |
.ui-icon-arrow-2-e-w { background-position: -160px -32px; } |
|
990 |
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } |
|
991 |
.ui-icon-arrowstop-1-n { background-position: -192px -32px; } |
|
992 |
.ui-icon-arrowstop-1-e { background-position: -208px -32px; } |
|
993 |
.ui-icon-arrowstop-1-s { background-position: -224px -32px; } |
|
994 |
.ui-icon-arrowstop-1-w { background-position: -240px -32px; } |
|
995 |
.ui-icon-arrowthick-1-n { background-position: 0 -48px; } |
|
996 |
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } |
|
997 |
.ui-icon-arrowthick-1-e { background-position: -32px -48px; } |
|
998 |
.ui-icon-arrowthick-1-se { background-position: -48px -48px; } |
|
999 |
.ui-icon-arrowthick-1-s { background-position: -64px -48px; } |
|
1000 |
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } |
|
1001 |
.ui-icon-arrowthick-1-w { background-position: -96px -48px; } |
|
1002 |
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } |
|
1003 |
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } |
|
1004 |
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } |
|
1005 |
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } |
|
1006 |
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } |
|
1007 |
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } |
|
1008 |
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } |
|
1009 |
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } |
|
1010 |
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } |
|
1011 |
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } |
|
1012 |
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } |
|
1013 |
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } |
|
1014 |
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } |
|
1015 |
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } |
|
1016 |
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } |
|
1017 |
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } |
|
1018 |
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } |
|
1019 |
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } |
|
1020 |
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } |
|
1021 |
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } |
|
1022 |
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } |
|
1023 |
.ui-icon-arrow-4 { background-position: 0 -80px; } |
|
1024 |
.ui-icon-arrow-4-diag { background-position: -16px -80px; } |
|
1025 |
.ui-icon-extlink { background-position: -32px -80px; } |
|
1026 |
.ui-icon-newwin { background-position: -48px -80px; } |
|
1027 |
.ui-icon-refresh { background-position: -64px -80px; } |
|
1028 |
.ui-icon-shuffle { background-position: -80px -80px; } |
|
1029 |
.ui-icon-transfer-e-w { background-position: -96px -80px; } |
|
1030 |
.ui-icon-transferthick-e-w { background-position: -112px -80px; } |
|
1031 |
.ui-icon-folder-collapsed { background-position: 0 -96px; } |
|
1032 |
.ui-icon-folder-open { background-position: -16px -96px; } |
|
1033 |
.ui-icon-document { background-position: -32px -96px; } |
|
1034 |
.ui-icon-document-b { background-position: -48px -96px; } |
|
1035 |
.ui-icon-note { background-position: -64px -96px; } |
|
1036 |
.ui-icon-mail-closed { background-position: -80px -96px; } |
|
1037 |
.ui-icon-mail-open { background-position: -96px -96px; } |
|
1038 |
.ui-icon-suitcase { background-position: -112px -96px; } |
|
1039 |
.ui-icon-comment { background-position: -128px -96px; } |
|
1040 |
.ui-icon-person { background-position: -144px -96px; } |
|
1041 |
.ui-icon-print { background-position: -160px -96px; } |
|
1042 |
.ui-icon-trash { background-position: -176px -96px; } |
|
1043 |
.ui-icon-locked { background-position: -192px -96px; } |
|
1044 |
.ui-icon-unlocked { background-position: -208px -96px; } |
|
1045 |
.ui-icon-bookmark { background-position: -224px -96px; } |
|
1046 |
.ui-icon-tag { background-position: -240px -96px; } |
|
1047 |
.ui-icon-home { background-position: 0 -112px; } |
|
1048 |
.ui-icon-flag { background-position: -16px -112px; } |
|
1049 |
.ui-icon-calendar { background-position: -32px -112px; } |
|
1050 |
.ui-icon-cart { background-position: -48px -112px; } |
|
1051 |
.ui-icon-pencil { background-position: -64px -112px; } |
|
1052 |
.ui-icon-clock { background-position: -80px -112px; } |
|
1053 |
.ui-icon-disk { background-position: -96px -112px; } |
|
1054 |
.ui-icon-calculator { background-position: -112px -112px; } |
|
1055 |
.ui-icon-zoomin { background-position: -128px -112px; } |
|
1056 |
.ui-icon-zoomout { background-position: -144px -112px; } |
|
1057 |
.ui-icon-search { background-position: -160px -112px; } |
|
1058 |
.ui-icon-wrench { background-position: -176px -112px; } |
|
1059 |
.ui-icon-gear { background-position: -192px -112px; } |
|
1060 |
.ui-icon-heart { background-position: -208px -112px; } |
|
1061 |
.ui-icon-star { background-position: -224px -112px; } |
|
1062 |
.ui-icon-link { background-position: -240px -112px; } |
|
1063 |
.ui-icon-cancel { background-position: 0 -128px; } |
|
1064 |
.ui-icon-plus { background-position: -16px -128px; } |
|
1065 |
.ui-icon-plusthick { background-position: -32px -128px; } |
|
1066 |
.ui-icon-minus { background-position: -48px -128px; } |
|
1067 |
.ui-icon-minusthick { background-position: -64px -128px; } |
|
1068 |
.ui-icon-close { background-position: -80px -128px; } |
|
1069 |
.ui-icon-closethick { background-position: -96px -128px; } |
|
1070 |
.ui-icon-key { background-position: -112px -128px; } |
|
1071 |
.ui-icon-lightbulb { background-position: -128px -128px; } |
|
1072 |
.ui-icon-scissors { background-position: -144px -128px; } |
|
1073 |
.ui-icon-clipboard { background-position: -160px -128px; } |
|
1074 |
.ui-icon-copy { background-position: -176px -128px; } |
|
1075 |
.ui-icon-contact { background-position: -192px -128px; } |
|
1076 |
.ui-icon-image { background-position: -208px -128px; } |
|
1077 |
.ui-icon-video { background-position: -224px -128px; } |
|
1078 |
.ui-icon-script { background-position: -240px -128px; } |
|
1079 |
.ui-icon-alert { background-position: 0 -144px; } |
|
1080 |
.ui-icon-info { background-position: -16px -144px; } |
|
1081 |
.ui-icon-notice { background-position: -32px -144px; } |
|
1082 |
.ui-icon-help { background-position: -48px -144px; } |
|
1083 |
.ui-icon-check { background-position: -64px -144px; } |
|
1084 |
.ui-icon-bullet { background-position: -80px -144px; } |
|
1085 |
.ui-icon-radio-on { background-position: -96px -144px; } |
|
1086 |
.ui-icon-radio-off { background-position: -112px -144px; } |
|
1087 |
.ui-icon-pin-w { background-position: -128px -144px; } |
|
1088 |
.ui-icon-pin-s { background-position: -144px -144px; } |
|
1089 |
.ui-icon-play { background-position: 0 -160px; } |
|
1090 |
.ui-icon-pause { background-position: -16px -160px; } |
|
1091 |
.ui-icon-seek-next { background-position: -32px -160px; } |
|
1092 |
.ui-icon-seek-prev { background-position: -48px -160px; } |
|
1093 |
.ui-icon-seek-end { background-position: -64px -160px; } |
|
1094 |
.ui-icon-seek-start { background-position: -80px -160px; } |
|
1095 |
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ |
|
1096 |
.ui-icon-seek-first { background-position: -80px -160px; } |
|
1097 |
.ui-icon-stop { background-position: -96px -160px; } |
|
1098 |
.ui-icon-eject { background-position: -112px -160px; } |
|
1099 |
.ui-icon-volume-off { background-position: -128px -160px; } |
|
1100 |
.ui-icon-volume-on { background-position: -144px -160px; } |
|
1101 |
.ui-icon-power { background-position: 0 -176px; } |
|
1102 |
.ui-icon-signal-diag { background-position: -16px -176px; } |
|
1103 |
.ui-icon-signal { background-position: -32px -176px; } |
|
1104 |
.ui-icon-battery-0 { background-position: -48px -176px; } |
|
1105 |
.ui-icon-battery-1 { background-position: -64px -176px; } |
|
1106 |
.ui-icon-battery-2 { background-position: -80px -176px; } |
|
1107 |
.ui-icon-battery-3 { background-position: -96px -176px; } |
|
1108 |
.ui-icon-circle-plus { background-position: 0 -192px; } |
|
1109 |
.ui-icon-circle-minus { background-position: -16px -192px; } |
|
1110 |
.ui-icon-circle-close { background-position: -32px -192px; } |
|
1111 |
.ui-icon-circle-triangle-e { background-position: -48px -192px; } |
|
1112 |
.ui-icon-circle-triangle-s { background-position: -64px -192px; } |
|
1113 |
.ui-icon-circle-triangle-w { background-position: -80px -192px; } |
|
1114 |
.ui-icon-circle-triangle-n { background-position: -96px -192px; } |
|
1115 |
.ui-icon-circle-arrow-e { background-position: -112px -192px; } |
|
1116 |
.ui-icon-circle-arrow-s { background-position: -128px -192px; } |
|
1117 |
.ui-icon-circle-arrow-w { background-position: -144px -192px; } |
|
1118 |
.ui-icon-circle-arrow-n { background-position: -160px -192px; } |
|
1119 |
.ui-icon-circle-zoomin { background-position: -176px -192px; } |
|
1120 |
.ui-icon-circle-zoomout { background-position: -192px -192px; } |
|
1121 |
.ui-icon-circle-check { background-position: -208px -192px; } |
|
1122 |
.ui-icon-circlesmall-plus { background-position: 0 -208px; } |
|
1123 |
.ui-icon-circlesmall-minus { background-position: -16px -208px; } |
|
1124 |
.ui-icon-circlesmall-close { background-position: -32px -208px; } |
|
1125 |
.ui-icon-squaresmall-plus { background-position: -48px -208px; } |
|
1126 |
.ui-icon-squaresmall-minus { background-position: -64px -208px; } |
|
1127 |
.ui-icon-squaresmall-close { background-position: -80px -208px; } |
|
1128 |
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } |
|
1129 |
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } |
|
1130 |
.ui-icon-grip-solid-vertical { background-position: -32px -224px; } |
|
1131 |
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } |
|
1132 |
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } |
|
1133 |
.ui-icon-grip-diagonal-se { background-position: -80px -224px; } |
|
1134 | ||
1135 | ||
1136 |
/* Misc visuals |
|
1137 |
----------------------------------*/ |
|
1138 | ||
1139 |
/* Corner radius */ |
|
1140 |
.ui-corner-all, |
|
1141 |
.ui-corner-top, |
|
1142 |
.ui-corner-left, |
|
1143 |
.ui-corner-tl { |
|
1144 |
border-top-left-radius: 4px; |
|
1145 |
} |
|
1146 |
.ui-corner-all, |
|
1147 |
.ui-corner-top, |
|
1148 |
.ui-corner-right, |
|
1149 |
.ui-corner-tr { |
|
1150 |
border-top-right-radius: 4px; |
|
1151 |
} |
|
1152 |
.ui-corner-all, |
|
1153 |
.ui-corner-bottom, |
|
1154 |
.ui-corner-left, |
|
1155 |
.ui-corner-bl { |
|
1156 |
border-bottom-left-radius: 4px; |
|
1157 |
} |
|
1158 |
.ui-corner-all, |
|
1159 |
.ui-corner-bottom, |
|
1160 |
.ui-corner-right, |
|
1161 |
.ui-corner-br { |
|
1162 |
border-bottom-right-radius: 4px; |
|
1163 |
} |
|
1164 | ||
1165 |
/* Overlays */ |
|
1166 |
.ui-widget-overlay { |
|
1167 |
background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; |
|
1168 |
opacity: .3; |
|
1169 |
filter: Alpha(Opacity=30); |
|
1170 |
} |
|
1171 |
.ui-widget-shadow { |
|
1172 |
margin: -8px 0 0 -8px; |
|
1173 |
padding: 8px; |
|
1174 |
background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; |
|
1175 |
opacity: .3; |
|
1176 |
filter: Alpha(Opacity=30); |
|
1177 |
border-radius: 8px; |
|
1178 |
} |
gadjo/static/css/smoothness/jquery-ui-1.10.4.custom.min.css | ||
---|---|---|
1 |
/*! jQuery UI - v1.10.4 - 2014-03-25 |
|
2 |
* http://jqueryui.com |
|
3 |
* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css |
|
4 |
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px |
|
5 |
* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ |
|
6 | ||
7 |
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("images/animated-overlay.gif");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} |
gadjo/static/css/smoothness/jquery-ui-1.8.21.custom.css | ||
---|---|---|
1 |
/*! |
|
2 |
* jQuery UI CSS Framework 1.8.21 |
|
3 |
* |
|
4 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
5 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
6 |
* http://jquery.org/license |
|
7 |
* |
|
8 |
* http://docs.jquery.com/UI/Theming/API |
|
9 |
*/ |
|
10 | ||
11 |
/* Layout helpers |
|
12 |
----------------------------------*/ |
|
13 |
.ui-helper-hidden { display: none; } |
|
14 |
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } |
|
15 |
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } |
|
16 |
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } |
|
17 |
.ui-helper-clearfix:after { clear: both; } |
|
18 |
.ui-helper-clearfix { zoom: 1; } |
|
19 |
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } |
|
20 | ||
21 | ||
22 |
/* Interaction Cues |
|
23 |
----------------------------------*/ |
|
24 |
.ui-state-disabled { cursor: default !important; } |
|
25 | ||
26 | ||
27 |
/* Icons |
|
28 |
----------------------------------*/ |
|
29 | ||
30 |
/* states and images */ |
|
31 |
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } |
|
32 | ||
33 | ||
34 |
/* Misc visuals |
|
35 |
----------------------------------*/ |
|
36 | ||
37 |
/* Overlays */ |
|
38 |
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } |
|
39 | ||
40 | ||
41 |
/*! |
|
42 |
* jQuery UI CSS Framework 1.8.21 |
|
43 |
* |
|
44 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
45 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
46 |
* http://jquery.org/license |
|
47 |
* |
|
48 |
* http://docs.jquery.com/UI/Theming/API |
|
49 |
* |
|
50 |
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px |
|
51 |
*/ |
|
52 | ||
53 | ||
54 |
/* Component containers |
|
55 |
----------------------------------*/ |
|
56 |
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } |
|
57 |
.ui-widget .ui-widget { font-size: 1em; } |
|
58 |
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } |
|
59 |
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } |
|
60 |
.ui-widget-content a { color: #222222; } |
|
61 |
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } |
|
62 |
.ui-widget-header a { color: #222222; } |
|
63 | ||
64 |
/* Interaction states |
|
65 |
----------------------------------*/ |
|
66 |
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } |
|
67 |
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } |
|
68 |
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } |
|
69 |
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } |
|
70 |
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } |
|
71 |
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } |
|
72 |
.ui-widget :active { outline: none; } |
|
73 | ||
74 |
/* Interaction Cues |
|
75 |
----------------------------------*/ |
|
76 |
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } |
|
77 |
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } |
|
78 |
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } |
|
79 |
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } |
|
80 |
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } |
|
81 |
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } |
|
82 |
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } |
|
83 |
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } |
|
84 | ||
85 |
/* Icons |
|
86 |
----------------------------------*/ |
|
87 | ||
88 |
/* states and images */ |
|
89 |
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } |
|
90 |
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } |
|
91 |
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } |
|
92 |
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } |
|
93 |
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } |
|
94 |
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } |
|
95 |
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } |
|
96 |
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } |
|
97 | ||
98 |
/* positioning */ |
|
99 |
.ui-icon-carat-1-n { background-position: 0 0; } |
|
100 |
.ui-icon-carat-1-ne { background-position: -16px 0; } |
|
101 |
.ui-icon-carat-1-e { background-position: -32px 0; } |
|
102 |
.ui-icon-carat-1-se { background-position: -48px 0; } |
|
103 |
.ui-icon-carat-1-s { background-position: -64px 0; } |
|
104 |
.ui-icon-carat-1-sw { background-position: -80px 0; } |
|
105 |
.ui-icon-carat-1-w { background-position: -96px 0; } |
|
106 |
.ui-icon-carat-1-nw { background-position: -112px 0; } |
|
107 |
.ui-icon-carat-2-n-s { background-position: -128px 0; } |
|
108 |
.ui-icon-carat-2-e-w { background-position: -144px 0; } |
|
109 |
.ui-icon-triangle-1-n { background-position: 0 -16px; } |
|
110 |
.ui-icon-triangle-1-ne { background-position: -16px -16px; } |
|
111 |
.ui-icon-triangle-1-e { background-position: -32px -16px; } |
|
112 |
.ui-icon-triangle-1-se { background-position: -48px -16px; } |
|
113 |
.ui-icon-triangle-1-s { background-position: -64px -16px; } |
|
114 |
.ui-icon-triangle-1-sw { background-position: -80px -16px; } |
|
115 |
.ui-icon-triangle-1-w { background-position: -96px -16px; } |
|
116 |
.ui-icon-triangle-1-nw { background-position: -112px -16px; } |
|
117 |
.ui-icon-triangle-2-n-s { background-position: -128px -16px; } |
|
118 |
.ui-icon-triangle-2-e-w { background-position: -144px -16px; } |
|
119 |
.ui-icon-arrow-1-n { background-position: 0 -32px; } |
|
120 |
.ui-icon-arrow-1-ne { background-position: -16px -32px; } |
|
121 |
.ui-icon-arrow-1-e { background-position: -32px -32px; } |
|
122 |
.ui-icon-arrow-1-se { background-position: -48px -32px; } |
|
123 |
.ui-icon-arrow-1-s { background-position: -64px -32px; } |
|
124 |
.ui-icon-arrow-1-sw { background-position: -80px -32px; } |
|
125 |
.ui-icon-arrow-1-w { background-position: -96px -32px; } |
|
126 |
.ui-icon-arrow-1-nw { background-position: -112px -32px; } |
|
127 |
.ui-icon-arrow-2-n-s { background-position: -128px -32px; } |
|
128 |
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } |
|
129 |
.ui-icon-arrow-2-e-w { background-position: -160px -32px; } |
|
130 |
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } |
|
131 |
.ui-icon-arrowstop-1-n { background-position: -192px -32px; } |
|
132 |
.ui-icon-arrowstop-1-e { background-position: -208px -32px; } |
|
133 |
.ui-icon-arrowstop-1-s { background-position: -224px -32px; } |
|
134 |
.ui-icon-arrowstop-1-w { background-position: -240px -32px; } |
|
135 |
.ui-icon-arrowthick-1-n { background-position: 0 -48px; } |
|
136 |
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } |
|
137 |
.ui-icon-arrowthick-1-e { background-position: -32px -48px; } |
|
138 |
.ui-icon-arrowthick-1-se { background-position: -48px -48px; } |
|
139 |
.ui-icon-arrowthick-1-s { background-position: -64px -48px; } |
|
140 |
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } |
|
141 |
.ui-icon-arrowthick-1-w { background-position: -96px -48px; } |
|
142 |
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } |
|
143 |
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } |
|
144 |
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } |
|
145 |
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } |
|
146 |
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } |
|
147 |
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } |
|
148 |
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } |
|
149 |
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } |
|
150 |
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } |
|
151 |
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } |
|
152 |
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } |
|
153 |
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } |
|
154 |
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } |
|
155 |
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } |
|
156 |
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } |
|
157 |
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } |
|
158 |
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } |
|
159 |
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } |
|
160 |
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } |
|
161 |
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } |
|
162 |
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } |
|
163 |
.ui-icon-arrow-4 { background-position: 0 -80px; } |
|
164 |
.ui-icon-arrow-4-diag { background-position: -16px -80px; } |
|
165 |
.ui-icon-extlink { background-position: -32px -80px; } |
|
166 |
.ui-icon-newwin { background-position: -48px -80px; } |
|
167 |
.ui-icon-refresh { background-position: -64px -80px; } |
|
168 |
.ui-icon-shuffle { background-position: -80px -80px; } |
|
169 |
.ui-icon-transfer-e-w { background-position: -96px -80px; } |
|
170 |
.ui-icon-transferthick-e-w { background-position: -112px -80px; } |
|
171 |
.ui-icon-folder-collapsed { background-position: 0 -96px; } |
|
172 |
.ui-icon-folder-open { background-position: -16px -96px; } |
|
173 |
.ui-icon-document { background-position: -32px -96px; } |
|
174 |
.ui-icon-document-b { background-position: -48px -96px; } |
|
175 |
.ui-icon-note { background-position: -64px -96px; } |
|
176 |
.ui-icon-mail-closed { background-position: -80px -96px; } |
|
177 |
.ui-icon-mail-open { background-position: -96px -96px; } |
|
178 |
.ui-icon-suitcase { background-position: -112px -96px; } |
|
179 |
.ui-icon-comment { background-position: -128px -96px; } |
|
180 |
.ui-icon-person { background-position: -144px -96px; } |
|
181 |
.ui-icon-print { background-position: -160px -96px; } |
|
182 |
.ui-icon-trash { background-position: -176px -96px; } |
|
183 |
.ui-icon-locked { background-position: -192px -96px; } |
|
184 |
.ui-icon-unlocked { background-position: -208px -96px; } |
|
185 |
.ui-icon-bookmark { background-position: -224px -96px; } |
|
186 |
.ui-icon-tag { background-position: -240px -96px; } |
|
187 |
.ui-icon-home { background-position: 0 -112px; } |
|
188 |
.ui-icon-flag { background-position: -16px -112px; } |
|
189 |
.ui-icon-calendar { background-position: -32px -112px; } |
|
190 |
.ui-icon-cart { background-position: -48px -112px; } |
|
191 |
.ui-icon-pencil { background-position: -64px -112px; } |
|
192 |
.ui-icon-clock { background-position: -80px -112px; } |
|
193 |
.ui-icon-disk { background-position: -96px -112px; } |
|
194 |
.ui-icon-calculator { background-position: -112px -112px; } |
|
195 |
.ui-icon-zoomin { background-position: -128px -112px; } |
|
196 |
.ui-icon-zoomout { background-position: -144px -112px; } |
|
197 |
.ui-icon-search { background-position: -160px -112px; } |
|
198 |
.ui-icon-wrench { background-position: -176px -112px; } |
|
199 |
.ui-icon-gear { background-position: -192px -112px; } |
|
200 |
.ui-icon-heart { background-position: -208px -112px; } |
|
201 |
.ui-icon-star { background-position: -224px -112px; } |
|
202 |
.ui-icon-link { background-position: -240px -112px; } |
|
203 |
.ui-icon-cancel { background-position: 0 -128px; } |
|
204 |
.ui-icon-plus { background-position: -16px -128px; } |
|
205 |
.ui-icon-plusthick { background-position: -32px -128px; } |
|
206 |
.ui-icon-minus { background-position: -48px -128px; } |
|
207 |
.ui-icon-minusthick { background-position: -64px -128px; } |
|
208 |
.ui-icon-close { background-position: -80px -128px; } |
|
209 |
.ui-icon-closethick { background-position: -96px -128px; } |
|
210 |
.ui-icon-key { background-position: -112px -128px; } |
|
211 |
.ui-icon-lightbulb { background-position: -128px -128px; } |
|
212 |
.ui-icon-scissors { background-position: -144px -128px; } |
|
213 |
.ui-icon-clipboard { background-position: -160px -128px; } |
|
214 |
.ui-icon-copy { background-position: -176px -128px; } |
|
215 |
.ui-icon-contact { background-position: -192px -128px; } |
|
216 |
.ui-icon-image { background-position: -208px -128px; } |
|
217 |
.ui-icon-video { background-position: -224px -128px; } |
|
218 |
.ui-icon-script { background-position: -240px -128px; } |
|
219 |
.ui-icon-alert { background-position: 0 -144px; } |
|
220 |
.ui-icon-info { background-position: -16px -144px; } |
|
221 |
.ui-icon-notice { background-position: -32px -144px; } |
|
222 |
.ui-icon-help { background-position: -48px -144px; } |
|
223 |
.ui-icon-check { background-position: -64px -144px; } |
|
224 |
.ui-icon-bullet { background-position: -80px -144px; } |
|
225 |
.ui-icon-radio-off { background-position: -96px -144px; } |
|
226 |
.ui-icon-radio-on { background-position: -112px -144px; } |
|
227 |
.ui-icon-pin-w { background-position: -128px -144px; } |
|
228 |
.ui-icon-pin-s { background-position: -144px -144px; } |
|
229 |
.ui-icon-play { background-position: 0 -160px; } |
|
230 |
.ui-icon-pause { background-position: -16px -160px; } |
|
231 |
.ui-icon-seek-next { background-position: -32px -160px; } |
|
232 |
.ui-icon-seek-prev { background-position: -48px -160px; } |
|
233 |
.ui-icon-seek-end { background-position: -64px -160px; } |
|
234 |
.ui-icon-seek-start { background-position: -80px -160px; } |
|
235 |
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ |
|
236 |
.ui-icon-seek-first { background-position: -80px -160px; } |
|
237 |
.ui-icon-stop { background-position: -96px -160px; } |
|
238 |
.ui-icon-eject { background-position: -112px -160px; } |
|
239 |
.ui-icon-volume-off { background-position: -128px -160px; } |
|
240 |
.ui-icon-volume-on { background-position: -144px -160px; } |
|
241 |
.ui-icon-power { background-position: 0 -176px; } |
|
242 |
.ui-icon-signal-diag { background-position: -16px -176px; } |
|
243 |
.ui-icon-signal { background-position: -32px -176px; } |
|
244 |
.ui-icon-battery-0 { background-position: -48px -176px; } |
|
245 |
.ui-icon-battery-1 { background-position: -64px -176px; } |
|
246 |
.ui-icon-battery-2 { background-position: -80px -176px; } |
|
247 |
.ui-icon-battery-3 { background-position: -96px -176px; } |
|
248 |
.ui-icon-circle-plus { background-position: 0 -192px; } |
|
249 |
.ui-icon-circle-minus { background-position: -16px -192px; } |
|
250 |
.ui-icon-circle-close { background-position: -32px -192px; } |
|
251 |
.ui-icon-circle-triangle-e { background-position: -48px -192px; } |
|
252 |
.ui-icon-circle-triangle-s { background-position: -64px -192px; } |
|
253 |
.ui-icon-circle-triangle-w { background-position: -80px -192px; } |
|
254 |
.ui-icon-circle-triangle-n { background-position: -96px -192px; } |
|
255 |
.ui-icon-circle-arrow-e { background-position: -112px -192px; } |
|
256 |
.ui-icon-circle-arrow-s { background-position: -128px -192px; } |
|
257 |
.ui-icon-circle-arrow-w { background-position: -144px -192px; } |
|
258 |
.ui-icon-circle-arrow-n { background-position: -160px -192px; } |
|
259 |
.ui-icon-circle-zoomin { background-position: -176px -192px; } |
|
260 |
.ui-icon-circle-zoomout { background-position: -192px -192px; } |
|
261 |
.ui-icon-circle-check { background-position: -208px -192px; } |
|
262 |
.ui-icon-circlesmall-plus { background-position: 0 -208px; } |
|
263 |
.ui-icon-circlesmall-minus { background-position: -16px -208px; } |
|
264 |
.ui-icon-circlesmall-close { background-position: -32px -208px; } |
|
265 |
.ui-icon-squaresmall-plus { background-position: -48px -208px; } |
|
266 |
.ui-icon-squaresmall-minus { background-position: -64px -208px; } |
|
267 |
.ui-icon-squaresmall-close { background-position: -80px -208px; } |
|
268 |
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } |
|
269 |
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } |
|
270 |
.ui-icon-grip-solid-vertical { background-position: -32px -224px; } |
|
271 |
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } |
|
272 |
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } |
|
273 |
.ui-icon-grip-diagonal-se { background-position: -80px -224px; } |
|
274 | ||
275 | ||
276 |
/* Misc visuals |
|
277 |
----------------------------------*/ |
|
278 | ||
279 |
/* Corner radius */ |
|
280 |
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } |
|
281 |
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } |
|
282 |
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } |
|
283 |
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } |
|
284 | ||
285 |
/* Overlays */ |
|
286 |
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } |
|
287 |
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*! |
|
288 |
* jQuery UI Resizable 1.8.21 |
|
289 |
* |
|
290 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
291 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
292 |
* http://jquery.org/license |
|
293 |
* |
|
294 |
* http://docs.jquery.com/UI/Resizable#theming |
|
295 |
*/ |
|
296 |
.ui-resizable { position: relative;} |
|
297 |
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; } |
|
298 |
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } |
|
299 |
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } |
|
300 |
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } |
|
301 |
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } |
|
302 |
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } |
|
303 |
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } |
|
304 |
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } |
|
305 |
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } |
|
306 |
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*! |
|
307 |
* jQuery UI Selectable 1.8.21 |
|
308 |
* |
|
309 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
310 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
311 |
* http://jquery.org/license |
|
312 |
* |
|
313 |
* http://docs.jquery.com/UI/Selectable#theming |
|
314 |
*/ |
|
315 |
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } |
|
316 |
/*! |
|
317 |
* jQuery UI Accordion 1.8.21 |
|
318 |
* |
|
319 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
320 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
321 |
* http://jquery.org/license |
|
322 |
* |
|
323 |
* http://docs.jquery.com/UI/Accordion#theming |
|
324 |
*/ |
|
325 |
/* IE/Win - Fix animation bug - #4615 */ |
|
326 |
.ui-accordion { width: 100%; } |
|
327 |
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } |
|
328 |
.ui-accordion .ui-accordion-li-fix { display: inline; } |
|
329 |
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } |
|
330 |
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } |
|
331 |
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } |
|
332 |
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } |
|
333 |
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } |
|
334 |
.ui-accordion .ui-accordion-content-active { display: block; } |
|
335 |
/*! |
|
336 |
* jQuery UI Autocomplete 1.8.21 |
|
337 |
* |
|
338 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
339 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
340 |
* http://jquery.org/license |
|
341 |
* |
|
342 |
* http://docs.jquery.com/UI/Autocomplete#theming |
|
343 |
*/ |
|
344 |
.ui-autocomplete { position: absolute; cursor: default; } |
|
345 | ||
346 |
/* workarounds */ |
|
347 |
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ |
|
348 | ||
349 |
/* |
|
350 |
* jQuery UI Menu 1.8.21 |
|
351 |
* |
|
352 |
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) |
|
353 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
354 |
* http://jquery.org/license |
|
355 |
* |
|
356 |
* http://docs.jquery.com/UI/Menu#theming |
|
357 |
*/ |
|
358 |
.ui-menu { |
|
359 |
list-style:none; |
|
360 |
padding: 2px; |
|
361 |
margin: 0; |
|
362 |
display:block; |
|
363 |
float: left; |
|
364 |
} |
|
365 |
.ui-menu .ui-menu { |
|
366 |
margin-top: -3px; |
|
367 |
} |
|
368 |
.ui-menu .ui-menu-item { |
|
369 |
margin:0; |
|
370 |
padding: 0; |
|
371 |
zoom: 1; |
|
372 |
float: left; |
|
373 |
clear: left; |
|
374 |
width: 100%; |
|
375 |
} |
|
376 |
.ui-menu .ui-menu-item a { |
|
377 |
text-decoration:none; |
|
378 |
display:block; |
|
379 |
padding:.2em .4em; |
|
380 |
line-height:1.5; |
|
381 |
zoom:1; |
|
382 |
} |
|
383 |
.ui-menu .ui-menu-item a.ui-state-hover, |
|
384 |
.ui-menu .ui-menu-item a.ui-state-active { |
|
385 |
font-weight: normal; |
|
386 |
margin: -1px; |
|
387 |
} |
|
388 |
/*! |
|
389 |
* jQuery UI Button 1.8.21 |
|
390 |
* |
|
391 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
392 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
393 |
* http://jquery.org/license |
|
394 |
* |
|
395 |
* http://docs.jquery.com/UI/Button#theming |
|
396 |
*/ |
|
397 |
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ |
|
398 |
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ |
|
399 |
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ |
|
400 |
.ui-button-icons-only { width: 3.4em; } |
|
401 |
button.ui-button-icons-only { width: 3.7em; } |
|
402 | ||
403 |
/*button text element */ |
|
404 |
.ui-button .ui-button-text { display: block; line-height: 1.4; } |
|
405 |
.ui-button-text-only .ui-button-text { padding: .4em 1em; } |
|
406 |
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } |
|
407 |
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } |
|
408 |
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } |
|
409 |
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } |
|
410 |
/* no icon support for input elements, provide padding by default */ |
|
411 |
input.ui-button { padding: .4em 1em; } |
|
412 | ||
413 |
/*button icon element(s) */ |
|
414 |
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } |
|
415 |
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } |
|
416 |
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } |
|
417 |
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } |
|
418 |
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } |
|
419 | ||
420 |
/*button sets*/ |
|
421 |
.ui-buttonset { margin-right: 7px; } |
|
422 |
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } |
|
423 | ||
424 |
/* workarounds */ |
|
425 |
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ |
|
426 |
/*! |
|
427 |
* jQuery UI Dialog 1.8.21 |
|
428 |
* |
|
429 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
430 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
431 |
* http://jquery.org/license |
|
432 |
* |
|
433 |
* http://docs.jquery.com/UI/Dialog#theming |
|
434 |
*/ |
|
435 |
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } |
|
436 |
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } |
|
437 |
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } |
|
438 |
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } |
|
439 |
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } |
|
440 |
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } |
|
441 |
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } |
|
442 |
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } |
|
443 |
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } |
|
444 |
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } |
|
445 |
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } |
|
446 |
.ui-draggable .ui-dialog-titlebar { cursor: move; } |
|
447 |
/*! |
|
448 |
* jQuery UI Slider 1.8.21 |
|
449 |
* |
|
450 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
451 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
452 |
* http://jquery.org/license |
|
453 |
* |
|
454 |
* http://docs.jquery.com/UI/Slider#theming |
|
455 |
*/ |
|
456 |
.ui-slider { position: relative; text-align: left; } |
|
457 |
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } |
|
458 |
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } |
|
459 | ||
460 |
.ui-slider-horizontal { height: .8em; } |
|
461 |
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } |
|
462 |
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } |
|
463 |
.ui-slider-horizontal .ui-slider-range-min { left: 0; } |
|
464 |
.ui-slider-horizontal .ui-slider-range-max { right: 0; } |
|
465 | ||
466 |
.ui-slider-vertical { width: .8em; height: 100px; } |
|
467 |
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } |
|
468 |
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } |
|
469 |
.ui-slider-vertical .ui-slider-range-min { bottom: 0; } |
|
470 |
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*! |
|
471 |
* jQuery UI Tabs 1.8.21 |
|
472 |
* |
|
473 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
474 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
475 |
* http://jquery.org/license |
|
476 |
* |
|
477 |
* http://docs.jquery.com/UI/Tabs#theming |
|
478 |
*/ |
|
479 |
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ |
|
480 |
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } |
|
481 |
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } |
|
482 |
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } |
|
483 |
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } |
|
484 |
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } |
|
485 |
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ |
|
486 |
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } |
|
487 |
.ui-tabs .ui-tabs-hide { display: none !important; } |
|
488 |
/*! |
|
489 |
* jQuery UI Datepicker 1.8.21 |
|
490 |
* |
|
491 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
492 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
493 |
* http://jquery.org/license |
|
494 |
* |
|
495 |
* http://docs.jquery.com/UI/Datepicker#theming |
|
496 |
*/ |
|
497 |
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } |
|
498 |
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } |
|
499 |
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } |
|
500 |
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } |
|
501 |
.ui-datepicker .ui-datepicker-prev { left:2px; } |
|
502 |
.ui-datepicker .ui-datepicker-next { right:2px; } |
|
503 |
.ui-datepicker .ui-datepicker-prev-hover { left:1px; } |
|
504 |
.ui-datepicker .ui-datepicker-next-hover { right:1px; } |
|
505 |
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } |
|
506 |
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } |
|
507 |
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } |
|
508 |
.ui-datepicker select.ui-datepicker-month-year {width: 100%;} |
|
509 |
.ui-datepicker select.ui-datepicker-month, |
|
510 |
.ui-datepicker select.ui-datepicker-year { width: 49%;} |
|
511 |
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } |
|
512 |
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } |
|
513 |
.ui-datepicker td { border: 0; padding: 1px; } |
|
514 |
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } |
|
515 |
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } |
|
516 |
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } |
|
517 |
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } |
|
518 | ||
519 |
/* with multiple calendars */ |
|
520 |
.ui-datepicker.ui-datepicker-multi { width:auto; } |
|
521 |
.ui-datepicker-multi .ui-datepicker-group { float:left; } |
|
522 |
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } |
|
523 |
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } |
|
524 |
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } |
|
525 |
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } |
|
526 |
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } |
|
527 |
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } |
|
528 |
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } |
|
529 |
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } |
|
530 | ||
531 |
/* RTL support */ |
|
532 |
.ui-datepicker-rtl { direction: rtl; } |
|
533 |
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } |
|
534 |
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } |
|
535 |
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } |
|
536 |
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } |
|
537 |
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } |
|
538 |
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } |
|
539 |
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } |
|
540 |
.ui-datepicker-rtl .ui-datepicker-group { float:right; } |
|
541 |
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } |
|
542 |
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } |
|
543 | ||
544 |
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ |
|
545 |
.ui-datepicker-cover { |
|
546 |
display: none; /*sorry for IE5*/ |
|
547 |
display/**/: block; /*sorry for IE5*/ |
|
548 |
position: absolute; /*must have*/ |
|
549 |
z-index: -1; /*must have*/ |
|
550 |
filter: mask(); /*must have*/ |
|
551 |
top: -4px; /*must have*/ |
|
552 |
left: -4px; /*must have*/ |
|
553 |
width: 200px; /*must have*/ |
|
554 |
height: 200px; /*must have*/ |
|
555 |
}/*! |
|
556 |
* jQuery UI Progressbar 1.8.21 |
|
557 |
* |
|
558 |
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
|
559 |
* Dual licensed under the MIT or GPL Version 2 licenses. |
|
560 |
* http://jquery.org/license |
|
561 |
* |
|
562 |
* http://docs.jquery.com/UI/Progressbar#theming |
|
563 |
*/ |
|
564 |
.ui-progressbar { height:2em; text-align: left; overflow: hidden; } |
|
565 |
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } |
gadjo/static/js/jquery-1.11.0.js | ||
---|---|---|
1 |
/*! |
|
2 |
* jQuery JavaScript Library v1.11.0 |
|
3 |
* http://jquery.com/ |
|
4 |
* |
|
5 |
* Includes Sizzle.js |
|
6 |
* http://sizzlejs.com/ |
|
7 |
* |
|
8 |
* Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors |
|
9 |
* Released under the MIT license |
|
10 |
* http://jquery.org/license |
|
11 |
* |
|
12 |
* Date: 2014-01-23T21:02Z |
|
13 |
*/ |
|
14 | ||
15 |
(function( global, factory ) { |
|
16 | ||
17 |
if ( typeof module === "object" && typeof module.exports === "object" ) { |
|
18 |
// For CommonJS and CommonJS-like environments where a proper window is present, |
|
19 |
// execute the factory and get jQuery |
|
20 |
// For environments that do not inherently posses a window with a document |
|
21 |
// (such as Node.js), expose a jQuery-making factory as module.exports |
|
22 |
// This accentuates the need for the creation of a real window |
|
23 |
// e.g. var jQuery = require("jquery")(window); |
|
24 |
// See ticket #14549 for more info |
|
25 |
module.exports = global.document ? |
|
26 |
factory( global, true ) : |
|
27 |
function( w ) { |
|
28 |
if ( !w.document ) { |
|
29 |
throw new Error( "jQuery requires a window with a document" ); |
|
30 |
} |
|
31 |
return factory( w ); |
|
32 |
}; |
|
33 |
} else { |
|
34 |
factory( global ); |
|
35 |
} |
|
36 | ||
37 |
// Pass this if window is not defined yet |
|
38 |
}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { |
|
39 | ||
40 |
// Can't do this because several apps including ASP.NET trace |
|
41 |
// the stack via arguments.caller.callee and Firefox dies if |
|
42 |
// you try to trace through "use strict" call chains. (#13335) |
|
43 |
// Support: Firefox 18+ |
|
44 |
// |
|
45 | ||
46 |
var deletedIds = []; |
|
47 | ||
48 |
var slice = deletedIds.slice; |
|
49 | ||
50 |
var concat = deletedIds.concat; |
|
51 | ||
52 |
var push = deletedIds.push; |
|
53 | ||
54 |
var indexOf = deletedIds.indexOf; |
|
55 | ||
56 |
var class2type = {}; |
|
57 | ||
58 |
var toString = class2type.toString; |
|
59 | ||
60 |
var hasOwn = class2type.hasOwnProperty; |
|
61 | ||
62 |
var trim = "".trim; |
|
63 | ||
64 |
var support = {}; |
|
65 | ||
66 | ||
67 | ||
68 |
var |
|
69 |
version = "1.11.0", |
|
70 | ||
71 |
// Define a local copy of jQuery |
|
72 |
jQuery = function( selector, context ) { |
|
73 |
// The jQuery object is actually just the init constructor 'enhanced' |
|
74 |
// Need init if jQuery is called (just allow error to be thrown if not included) |
|
75 |
return new jQuery.fn.init( selector, context ); |
|
76 |
}, |
|
77 | ||
78 |
// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) |
|
79 |
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, |
|
80 | ||
81 |
// Matches dashed string for camelizing |
|
82 |
rmsPrefix = /^-ms-/, |
|
83 |
rdashAlpha = /-([\da-z])/gi, |
|
84 | ||
85 |
// Used by jQuery.camelCase as callback to replace() |
|
86 |
fcamelCase = function( all, letter ) { |
|
87 |
return letter.toUpperCase(); |
|
88 |
}; |
|
89 | ||
90 |
jQuery.fn = jQuery.prototype = { |
|
91 |
// The current version of jQuery being used |
|
92 |
jquery: version, |
|
93 | ||
94 |
constructor: jQuery, |
|
95 | ||
96 |
// Start with an empty selector |
|
97 |
selector: "", |
|
98 | ||
99 |
// The default length of a jQuery object is 0 |
|
100 |
length: 0, |
|
101 | ||
102 |
toArray: function() { |
|
103 |
return slice.call( this ); |
|
104 |
}, |
|
105 | ||
106 |
// Get the Nth element in the matched element set OR |
|
107 |
// Get the whole matched element set as a clean array |
|
108 |
get: function( num ) { |
|
109 |
return num != null ? |
|
110 | ||
111 |
// Return a 'clean' array |
|
112 |
( num < 0 ? this[ num + this.length ] : this[ num ] ) : |
|
113 | ||
114 |
// Return just the object |
|
115 |
slice.call( this ); |
|
116 |
}, |
|
117 | ||
118 |
// Take an array of elements and push it onto the stack |
|
119 |
// (returning the new matched element set) |
|
120 |
pushStack: function( elems ) { |
|
121 | ||
122 |
// Build a new jQuery matched element set |
|
123 |
var ret = jQuery.merge( this.constructor(), elems ); |
|
124 | ||
125 |
// Add the old object onto the stack (as a reference) |
|
126 |
ret.prevObject = this; |
|
127 |
ret.context = this.context; |
|
128 | ||
129 |
// Return the newly-formed element set |
|
130 |
return ret; |
|
131 |
}, |
|
132 | ||
133 |
// Execute a callback for every element in the matched set. |
|
134 |
// (You can seed the arguments with an array of args, but this is |
|
135 |
// only used internally.) |
|
136 |
each: function( callback, args ) { |
|
137 |
return jQuery.each( this, callback, args ); |
|
138 |
}, |
|
139 | ||
140 |
map: function( callback ) { |
|
141 |
return this.pushStack( jQuery.map(this, function( elem, i ) { |
|
142 |
return callback.call( elem, i, elem ); |
|
143 |
})); |
|
144 |
}, |
|
145 | ||
146 |
slice: function() { |
|
147 |
return this.pushStack( slice.apply( this, arguments ) ); |
|
148 |
}, |
|
149 | ||
150 |
first: function() { |
|
151 |
return this.eq( 0 ); |
|
152 |
}, |
|
153 | ||
154 |
last: function() { |
|
155 |
return this.eq( -1 ); |
|
156 |
}, |
|
157 | ||
158 |
eq: function( i ) { |
|
159 |
var len = this.length, |
|
160 |
j = +i + ( i < 0 ? len : 0 ); |
|
161 |
return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); |
|
162 |
}, |
|
163 | ||
164 |
end: function() { |
|
165 |
return this.prevObject || this.constructor(null); |
|
166 |
}, |
|
167 | ||
168 |
// For internal use only. |
|
169 |
// Behaves like an Array's method, not like a jQuery method. |
|
170 |
push: push, |
|
171 |
sort: deletedIds.sort, |
|
172 |
splice: deletedIds.splice |
|
173 |
}; |
|
174 | ||
175 |
jQuery.extend = jQuery.fn.extend = function() { |
|
176 |
var src, copyIsArray, copy, name, options, clone, |
|
177 |
target = arguments[0] || {}, |
|
178 |
i = 1, |
|
179 |
length = arguments.length, |
|
180 |
deep = false; |
|
181 | ||
182 |
// Handle a deep copy situation |
|
183 |
if ( typeof target === "boolean" ) { |
|
184 |
deep = target; |
|
185 | ||
186 |
// skip the boolean and the target |
|
187 |
target = arguments[ i ] || {}; |
|
188 |
i++; |
|
189 |
} |
|
190 | ||
191 |
// Handle case when target is a string or something (possible in deep copy) |
|
192 |
if ( typeof target !== "object" && !jQuery.isFunction(target) ) { |
|
193 |
target = {}; |
|
194 |
} |
|
195 | ||
196 |
// extend jQuery itself if only one argument is passed |
|
197 |
if ( i === length ) { |
|
198 |
target = this; |
|
199 |
i--; |
|
200 |
} |
|
201 | ||
202 |
for ( ; i < length; i++ ) { |
|
203 |
// Only deal with non-null/undefined values |
|
204 |
if ( (options = arguments[ i ]) != null ) { |
|
205 |
// Extend the base object |
|
206 |
for ( name in options ) { |
|
207 |
src = target[ name ]; |
|
208 |
copy = options[ name ]; |
|
209 | ||
210 |
// Prevent never-ending loop |
|
211 |
if ( target === copy ) { |
|
212 |
continue; |
|
213 |
} |
|
214 | ||
215 |
// Recurse if we're merging plain objects or arrays |
|
216 |
if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { |
|
217 |
if ( copyIsArray ) { |
|
218 |
copyIsArray = false; |
|
219 |
clone = src && jQuery.isArray(src) ? src : []; |
|
220 | ||
221 |
} else { |
|
222 |
clone = src && jQuery.isPlainObject(src) ? src : {}; |
|
223 |
} |
|
224 | ||
225 |
// Never move original objects, clone them |
|
226 |
target[ name ] = jQuery.extend( deep, clone, copy ); |
|
227 | ||
228 |
// Don't bring in undefined values |
|
229 |
} else if ( copy !== undefined ) { |
|
230 |
target[ name ] = copy; |
|
231 |
} |
|
232 |
} |
|
233 |
} |
|
234 |
} |
|
235 | ||
236 |
// Return the modified object |
|
237 |
return target; |
|
238 |
}; |
|
239 | ||
240 |
jQuery.extend({ |
|
241 |
// Unique for each copy of jQuery on the page |
|
242 |
expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), |
|
243 | ||
244 |
// Assume jQuery is ready without the ready module |
|
245 |
isReady: true, |
|
246 | ||
247 |
error: function( msg ) { |
|
248 |
throw new Error( msg ); |
|
249 |
}, |
|
250 | ||
251 |
noop: function() {}, |
|
252 | ||
253 |
// See test/unit/core.js for details concerning isFunction. |
|
254 |
// Since version 1.3, DOM methods and functions like alert |
|
255 |
// aren't supported. They return false on IE (#2968). |
|
256 |
isFunction: function( obj ) { |
|
257 |
return jQuery.type(obj) === "function"; |
|
258 |
}, |
|
259 | ||
260 |
isArray: Array.isArray || function( obj ) { |
|
261 |
return jQuery.type(obj) === "array"; |
|
262 |
}, |
|
263 | ||
264 |
isWindow: function( obj ) { |
|
265 |
/* jshint eqeqeq: false */ |
|
266 |
return obj != null && obj == obj.window; |
|
267 |
}, |
|
268 | ||
269 |
isNumeric: function( obj ) { |
|
270 |
// parseFloat NaNs numeric-cast false positives (null|true|false|"") |
|
271 |
// ...but misinterprets leading-number strings, particularly hex literals ("0x...") |
|
272 |
// subtraction forces infinities to NaN |
|
273 |
return obj - parseFloat( obj ) >= 0; |
|
274 |
}, |
|
275 | ||
276 |
isEmptyObject: function( obj ) { |
|
277 |
var name; |
|
278 |
for ( name in obj ) { |
|
279 |
return false; |
|
280 |
} |
|
281 |
return true; |
|
282 |
}, |
|
283 | ||
284 |
isPlainObject: function( obj ) { |
|
285 |
var key; |
|
286 | ||
287 |
// Must be an Object. |
|
288 |
// Because of IE, we also have to check the presence of the constructor property. |
|
289 |
// Make sure that DOM nodes and window objects don't pass through, as well |
|
290 |
if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { |
|
291 |
return false; |
|
292 |
} |
|
293 | ||
294 |
try { |
|
295 |
// Not own constructor property must be Object |
|
296 |
if ( obj.constructor && |
|
297 |
!hasOwn.call(obj, "constructor") && |
|
298 |
!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { |
|
299 |
return false; |
|
300 |
} |
|
301 |
} catch ( e ) { |
|
302 |
// IE8,9 Will throw exceptions on certain host objects #9897 |
|
303 |
return false; |
|
304 |
} |
|
305 | ||
306 |
// Support: IE<9 |
|
307 |
// Handle iteration over inherited properties before own properties. |
|
308 |
if ( support.ownLast ) { |
|
309 |
for ( key in obj ) { |
|
310 |
return hasOwn.call( obj, key ); |
|
311 |
} |
|
312 |
} |
|
313 | ||
314 |
// Own properties are enumerated firstly, so to speed up, |
|
315 |
// if last one is own, then all properties are own. |
|
316 |
for ( key in obj ) {} |
|
317 | ||
318 |
return key === undefined || hasOwn.call( obj, key ); |
|
319 |
}, |
|
320 | ||
321 |
type: function( obj ) { |
|
322 |
if ( obj == null ) { |
|
323 |
return obj + ""; |
|
324 |
} |
|
325 |
return typeof obj === "object" || typeof obj === "function" ? |
|
326 |
class2type[ toString.call(obj) ] || "object" : |
|
327 |
typeof obj; |
|
328 |
}, |
|
329 | ||
330 |
// Evaluates a script in a global context |
|
331 |
// Workarounds based on findings by Jim Driscoll |
|
332 |
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context |
|
333 |
globalEval: function( data ) { |
|
334 |
if ( data && jQuery.trim( data ) ) { |
|
335 |
// We use execScript on Internet Explorer |
|
336 |
// We use an anonymous function so that context is window |
|
337 |
// rather than jQuery in Firefox |
|
338 |
( window.execScript || function( data ) { |
|
339 |
window[ "eval" ].call( window, data ); |
|
340 |
} )( data ); |
|
341 |
} |
|
342 |
}, |
|
343 | ||
344 |
// Convert dashed to camelCase; used by the css and data modules |
|
345 |
// Microsoft forgot to hump their vendor prefix (#9572) |
|
346 |
camelCase: function( string ) { |
|
347 |
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); |
|
348 |
}, |
|
349 | ||
350 |
nodeName: function( elem, name ) { |
|
351 |
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); |
|
352 |
}, |
|
353 | ||
354 |
// args is for internal usage only |
|
355 |
each: function( obj, callback, args ) { |
|
356 |
var value, |
|
357 |
i = 0, |
|
358 |
length = obj.length, |
|
359 |
isArray = isArraylike( obj ); |
|
360 | ||
361 |
if ( args ) { |
|
362 |
if ( isArray ) { |
|
363 |
for ( ; i < length; i++ ) { |
|
364 |
value = callback.apply( obj[ i ], args ); |
|
365 | ||
366 |
if ( value === false ) { |
|
367 |
break; |
|
368 |
} |
|
369 |
} |
|
370 |
} else { |
|
371 |
for ( i in obj ) { |
|
372 |
value = callback.apply( obj[ i ], args ); |
|
373 | ||
374 |
if ( value === false ) { |
|
375 |
break; |
|
376 |
} |
|
377 |
} |
|
378 |
} |
|
379 | ||
380 |
// A special, fast, case for the most common use of each |
|
381 |
} else { |
|
382 |
if ( isArray ) { |
|
383 |
for ( ; i < length; i++ ) { |
|
384 |
value = callback.call( obj[ i ], i, obj[ i ] ); |
|
385 | ||
386 |
if ( value === false ) { |
|
387 |
break; |
|
388 |
} |
|
389 |
} |
|
390 |
} else { |
|
391 |
for ( i in obj ) { |
|
392 |
value = callback.call( obj[ i ], i, obj[ i ] ); |
|
393 | ||
394 |
if ( value === false ) { |
|
395 |
break; |
|
396 |
} |
|
397 |
} |
|
398 |
} |
|
399 |
} |
|
400 | ||
401 |
return obj; |
|
402 |
}, |
|
403 | ||
404 |
// Use native String.trim function wherever possible |
|
405 |
trim: trim && !trim.call("\uFEFF\xA0") ? |
|
406 |
function( text ) { |
|
407 |
return text == null ? |
|
408 |
"" : |
|
409 |
trim.call( text ); |
|
410 |
} : |
|
411 | ||
412 |
// Otherwise use our own trimming functionality |
|
413 |
function( text ) { |
|
414 |
return text == null ? |
|
415 |
"" : |
|
416 |
( text + "" ).replace( rtrim, "" ); |
|
417 |
}, |
|
418 | ||
419 |
// results is for internal usage only |
|
420 |
makeArray: function( arr, results ) { |
|
421 |
var ret = results || []; |
|
422 | ||
423 |
if ( arr != null ) { |
|
424 |
if ( isArraylike( Object(arr) ) ) { |
|
425 |
jQuery.merge( ret, |
|
426 |
typeof arr === "string" ? |
|
427 |
[ arr ] : arr |
|
428 |
); |
|
429 |
} else { |
|
430 |
push.call( ret, arr ); |
|
431 |
} |
|
432 |
} |
|
433 | ||
434 |
return ret; |
|
435 |
}, |
|
436 | ||
437 |
inArray: function( elem, arr, i ) { |
|
438 |
var len; |
|
439 | ||
440 |
if ( arr ) { |
|
441 |
if ( indexOf ) { |
|
442 |
return indexOf.call( arr, elem, i ); |
|
443 |
} |
|
444 | ||
445 |
len = arr.length; |
|
446 |
i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; |
|
447 | ||
448 |
for ( ; i < len; i++ ) { |
|
449 |
// Skip accessing in sparse arrays |
|
450 |
if ( i in arr && arr[ i ] === elem ) { |
|
451 |
return i; |
|
452 |
} |
|
453 |
} |
|
454 |
} |
|
455 | ||
456 |
return -1; |
|
457 |
}, |
|
458 | ||
459 |
merge: function( first, second ) { |
|
460 |
var len = +second.length, |
|
461 |
j = 0, |
|
462 |
i = first.length; |
|
463 | ||
464 |
while ( j < len ) { |
|
465 |
first[ i++ ] = second[ j++ ]; |
|
466 |
} |
|
467 | ||
468 |
// Support: IE<9 |
|
469 |
// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) |
|
470 |
if ( len !== len ) { |
|
471 |
while ( second[j] !== undefined ) { |
|
472 |
first[ i++ ] = second[ j++ ]; |
|
473 |
} |
|
474 |
} |
|
475 | ||
476 |
first.length = i; |
|
477 | ||
478 |
return first; |
|
479 |
}, |
|
480 | ||
481 |
grep: function( elems, callback, invert ) { |
|
482 |
var callbackInverse, |
|
483 |
matches = [], |
|
484 |
i = 0, |
|
485 |
length = elems.length, |
|
486 |
callbackExpect = !invert; |
|
487 | ||
488 |
// Go through the array, only saving the items |
|
489 |
// that pass the validator function |
|
490 |
for ( ; i < length; i++ ) { |
|
491 |
callbackInverse = !callback( elems[ i ], i ); |
|
492 |
if ( callbackInverse !== callbackExpect ) { |
|
493 |
matches.push( elems[ i ] ); |
|
494 |
} |
|
495 |
} |
|
496 | ||
497 |
return matches; |
|
498 |
}, |
|
499 | ||
500 |
// arg is for internal usage only |
|
501 |
map: function( elems, callback, arg ) { |
|
502 |
var value, |
|
503 |
i = 0, |
|
504 |
length = elems.length, |
|
505 |
isArray = isArraylike( elems ), |
|
506 |
ret = []; |
|
507 | ||
508 |
// Go through the array, translating each of the items to their new values |
|
509 |
if ( isArray ) { |
|
510 |
for ( ; i < length; i++ ) { |
|
511 |
value = callback( elems[ i ], i, arg ); |
|
512 | ||
513 |
if ( value != null ) { |
|
514 |
ret.push( value ); |
|
515 |
} |
|
516 |
} |
|
517 | ||
518 |
// Go through every key on the object, |
|
519 |
} else { |
|
520 |
for ( i in elems ) { |
|
521 |
value = callback( elems[ i ], i, arg ); |
|
522 | ||
523 |
if ( value != null ) { |
|
524 |
ret.push( value ); |
|
525 |
} |
|
526 |
} |
|
527 |
} |
|
528 | ||
529 |
// Flatten any nested arrays |
|
530 |
return concat.apply( [], ret ); |
|
531 |
}, |
|
532 | ||
533 |
// A global GUID counter for objects |
|
534 |
guid: 1, |
|
535 | ||
536 |
// Bind a function to a context, optionally partially applying any |
|
537 |
// arguments. |
|
538 |
proxy: function( fn, context ) { |
|
539 |
var args, proxy, tmp; |
|
540 | ||
541 |
if ( typeof context === "string" ) { |
|
542 |
tmp = fn[ context ]; |
|
543 |
context = fn; |
|
544 |
fn = tmp; |
|
545 |
} |
|
546 | ||
547 |
// Quick check to determine if target is callable, in the spec |
|
548 |
// this throws a TypeError, but we will just return undefined. |
|
549 |
if ( !jQuery.isFunction( fn ) ) { |
|
550 |
return undefined; |
|
551 |
} |
|
552 | ||
553 |
// Simulated bind |
|
554 |
args = slice.call( arguments, 2 ); |
|
555 |
proxy = function() { |
|
556 |
return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); |
|
557 |
}; |
|
558 | ||
559 |
// Set the guid of unique handler to the same of original handler, so it can be removed |
|
560 |
proxy.guid = fn.guid = fn.guid || jQuery.guid++; |
|
561 | ||
562 |
return proxy; |
|
563 |
}, |
|
564 | ||
565 |
now: function() { |
|
566 |
return +( new Date() ); |
|
567 |
}, |
|
568 | ||
569 |
// jQuery.support is not used in Core but other projects attach their |
|
570 |
// properties to it so it needs to exist. |
|
571 |
support: support |
|
572 |
}); |
|
573 | ||
574 |
// Populate the class2type map |
|
575 |
jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { |
|
576 |
class2type[ "[object " + name + "]" ] = name.toLowerCase(); |
|
577 |
}); |
|
578 | ||
579 |
function isArraylike( obj ) { |
|
580 |
var length = obj.length, |
|
581 |
type = jQuery.type( obj ); |
|
582 | ||
583 |
if ( type === "function" || jQuery.isWindow( obj ) ) { |
|
584 |
return false; |
|
585 |
} |
|
586 | ||
587 |
if ( obj.nodeType === 1 && length ) { |
|
588 |
return true; |
|
589 |
} |
|
590 | ||
591 |
return type === "array" || length === 0 || |
|
592 |
typeof length === "number" && length > 0 && ( length - 1 ) in obj; |
|
593 |
} |
|
594 |
var Sizzle = |
|
595 |
/*! |
|
596 |
* Sizzle CSS Selector Engine v1.10.16 |
|
597 |
* http://sizzlejs.com/ |
|
598 |
* |
|
599 |
* Copyright 2013 jQuery Foundation, Inc. and other contributors |
|
600 |
* Released under the MIT license |
|
601 |
* http://jquery.org/license |
|
602 |
* |
|
603 |
* Date: 2014-01-13 |
|
604 |
*/ |
|
605 |
(function( window ) { |
|
606 | ||
607 |
var i, |
|
608 |
support, |
|
609 |
Expr, |
|
610 |
getText, |
|
611 |
isXML, |
|
612 |
compile, |
|
613 |
outermostContext, |
|
614 |
sortInput, |
|
615 |
hasDuplicate, |
|
616 | ||
617 |
// Local document vars |
|
618 |
setDocument, |
|
619 |
document, |
|
620 |
docElem, |
|
621 |
documentIsHTML, |
|
622 |
rbuggyQSA, |
|
623 |
rbuggyMatches, |
|
624 |
matches, |
|
625 |
contains, |
|
626 | ||
627 |
// Instance-specific data |
|
628 |
expando = "sizzle" + -(new Date()), |
|
629 |
preferredDoc = window.document, |
|
630 |
dirruns = 0, |
|
631 |
done = 0, |
|
632 |
classCache = createCache(), |
|
633 |
tokenCache = createCache(), |
|
634 |
compilerCache = createCache(), |
|
635 |
sortOrder = function( a, b ) { |
|
636 |
if ( a === b ) { |
|
637 |
hasDuplicate = true; |
|
638 |
} |
|
639 |
return 0; |
|
640 |
}, |
|
641 | ||
642 |
// General-purpose constants |
|
643 |
strundefined = typeof undefined, |
|
644 |
MAX_NEGATIVE = 1 << 31, |
|
645 | ||
646 |
// Instance methods |
|
647 |
hasOwn = ({}).hasOwnProperty, |
|
648 |
arr = [], |
|
649 |
pop = arr.pop, |
|
650 |
push_native = arr.push, |
|
651 |
push = arr.push, |
|
652 |
slice = arr.slice, |
|
653 |
// Use a stripped-down indexOf if we can't use a native one |
|
654 |
indexOf = arr.indexOf || function( elem ) { |
|
655 |
var i = 0, |
|
656 |
len = this.length; |
|
657 |
for ( ; i < len; i++ ) { |
|
658 |
if ( this[i] === elem ) { |
|
659 |
return i; |
|
660 |
} |
|
661 |
} |
|
662 |
return -1; |
|
663 |
}, |
|
664 | ||
665 |
booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", |
|
666 | ||
667 |
// Regular expressions |
|
668 | ||
669 |
// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace |
|
670 |
whitespace = "[\\x20\\t\\r\\n\\f]", |
|
671 |
// http://www.w3.org/TR/css3-syntax/#characters |
|
672 |
characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", |
|
673 | ||
674 |
// Loosely modeled on CSS identifier characters |
|
675 |
// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors |
|
676 |
// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier |
|
677 |
identifier = characterEncoding.replace( "w", "w#" ), |
|
678 | ||
679 |
// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors |
|
680 |
attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + |
|
681 |
"*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", |
|
682 | ||
683 |
// Prefer arguments quoted, |
|
684 |
// then not containing pseudos/brackets, |
|
685 |
// then attribute selectors/non-parenthetical expressions, |
|
686 |
// then anything else |
|
687 |
// These preferences are here to reduce the number of selectors |
|
688 |
// needing tokenize in the PSEUDO preFilter |
|
689 |
pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", |
|
690 | ||
691 |
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter |
|
692 |
rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), |
|
693 | ||
694 |
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), |
|
695 |
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), |
|
696 | ||
697 |
rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), |
|
698 | ||
699 |
rpseudo = new RegExp( pseudos ), |
|
700 |
ridentifier = new RegExp( "^" + identifier + "$" ), |
|
701 | ||
702 |
matchExpr = { |
|
703 |
"ID": new RegExp( "^#(" + characterEncoding + ")" ), |
|
704 |
"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), |
|
705 |
"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), |
|
706 |
"ATTR": new RegExp( "^" + attributes ), |
|
707 |
"PSEUDO": new RegExp( "^" + pseudos ), |
|
708 |
"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + |
|
709 |
"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + |
|
710 |
"*(\\d+)|))" + whitespace + "*\\)|)", "i" ), |
|
711 |
"bool": new RegExp( "^(?:" + booleans + ")$", "i" ), |
|
712 |
// For use in libraries implementing .is() |
|
713 |
// We use this for POS matching in `select` |
|
714 |
"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + |
|
715 |
whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) |
|
716 |
}, |
|
717 | ||
718 |
rinputs = /^(?:input|select|textarea|button)$/i, |
|
719 |
rheader = /^h\d$/i, |
|
720 | ||
721 |
rnative = /^[^{]+\{\s*\[native \w/, |
|
722 | ||
723 |
// Easily-parseable/retrievable ID or TAG or CLASS selectors |
|
724 |
rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, |
|
725 | ||
726 |
rsibling = /[+~]/, |
|
727 |
rescape = /'|\\/g, |
|
728 | ||
729 |
// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters |
|
730 |
runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), |
|
731 |
funescape = function( _, escaped, escapedWhitespace ) { |
|
732 |
var high = "0x" + escaped - 0x10000; |
|
733 |
// NaN means non-codepoint |
|
734 |
// Support: Firefox |
|
735 |
// Workaround erroneous numeric interpretation of +"0x" |
|
736 |
return high !== high || escapedWhitespace ? |
|
737 |
escaped : |
|
738 |
high < 0 ? |
|
739 |
// BMP codepoint |
|
740 |
String.fromCharCode( high + 0x10000 ) : |
|
741 |
// Supplemental Plane codepoint (surrogate pair) |
|
742 |
String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); |
|
743 |
}; |
|
744 | ||
745 |
// Optimize for push.apply( _, NodeList ) |
|
746 |
try { |
|
747 |
push.apply( |
|
748 |
(arr = slice.call( preferredDoc.childNodes )), |
|
749 |
preferredDoc.childNodes |
|
750 |
); |
|
751 |
// Support: Android<4.0 |
|
752 |
// Detect silently failing push.apply |
|
753 |
arr[ preferredDoc.childNodes.length ].nodeType; |
|
754 |
} catch ( e ) { |
|
755 |
push = { apply: arr.length ? |
|
756 | ||
757 |
// Leverage slice if possible |
|
758 |
function( target, els ) { |
|
759 |
push_native.apply( target, slice.call(els) ); |
|
760 |
} : |
|
761 | ||
762 |
// Support: IE<9 |
|
763 |
// Otherwise append directly |
|
764 |
function( target, els ) { |
|
765 |
var j = target.length, |
|
766 |
i = 0; |
|
767 |
// Can't trust NodeList.length |
|
768 |
while ( (target[j++] = els[i++]) ) {} |
|
769 |
target.length = j - 1; |
|
770 |
} |
|
771 |
}; |
|
772 |
} |
|
773 | ||
774 |
function Sizzle( selector, context, results, seed ) { |
|
775 |
var match, elem, m, nodeType, |
|
776 |
// QSA vars |
|
777 |
i, groups, old, nid, newContext, newSelector; |
|
778 | ||
779 |
if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { |
|
780 |
setDocument( context ); |
|
781 |
} |
|
782 | ||
783 |
context = context || document; |
|
784 |
results = results || []; |
|
785 | ||
786 |
if ( !selector || typeof selector !== "string" ) { |
|
787 |
return results; |
|
788 |
} |
|
789 | ||
790 |
if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { |
|
791 |
return []; |
|
792 |
} |
|
793 | ||
794 |
if ( documentIsHTML && !seed ) { |
|
795 | ||
796 |
// Shortcuts |
|
797 |
if ( (match = rquickExpr.exec( selector )) ) { |
|
798 |
// Speed-up: Sizzle("#ID") |
|
799 |
if ( (m = match[1]) ) { |
|
800 |
if ( nodeType === 9 ) { |
|
801 |
elem = context.getElementById( m ); |
|
802 |
// Check parentNode to catch when Blackberry 4.6 returns |
|
803 |
// nodes that are no longer in the document (jQuery #6963) |
|
804 |
if ( elem && elem.parentNode ) { |
|
805 |
// Handle the case where IE, Opera, and Webkit return items |
|
806 |
// by name instead of ID |
|
807 |
if ( elem.id === m ) { |
|
808 |
results.push( elem ); |
|
809 |
return results; |
|
810 |
} |
|
811 |
} else { |
|
812 |
return results; |
|
813 |
} |
|
814 |
} else { |
|
815 |
// Context is not a document |
|
816 |
if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && |
|
817 |
contains( context, elem ) && elem.id === m ) { |
|
818 |
results.push( elem ); |
|
819 |
return results; |
|
820 |
} |
|
821 |
} |
|
822 | ||
823 |
// Speed-up: Sizzle("TAG") |
|
824 |
} else if ( match[2] ) { |
|
825 |
push.apply( results, context.getElementsByTagName( selector ) ); |
|
826 |
return results; |
|
827 | ||
828 |
// Speed-up: Sizzle(".CLASS") |
|
829 |
} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { |
|
830 |
push.apply( results, context.getElementsByClassName( m ) ); |
|
831 |
return results; |
|
832 |
} |
|
833 |
} |
|
834 | ||
835 |
// QSA path |
|
836 |
if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { |
|
837 |
nid = old = expando; |
|
838 |
newContext = context; |
|
839 |
newSelector = nodeType === 9 && selector; |
|
840 | ||
841 |
// qSA works strangely on Element-rooted queries |
|
842 |
// We can work around this by specifying an extra ID on the root |
|
843 |
// and working up from there (Thanks to Andrew Dupont for the technique) |
|
844 |
// IE 8 doesn't work on object elements |
|
845 |
if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { |
|
846 |
groups = tokenize( selector ); |
|
847 | ||
848 |
if ( (old = context.getAttribute("id")) ) { |
|
849 |
nid = old.replace( rescape, "\\$&" ); |
|
850 |
} else { |
|
851 |
context.setAttribute( "id", nid ); |
|
852 |
} |
|
853 |
nid = "[id='" + nid + "'] "; |
|
854 | ||
855 |
i = groups.length; |
|
856 |
while ( i-- ) { |
|
857 |
groups[i] = nid + toSelector( groups[i] ); |
|
858 |
} |
|
859 |
newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; |
|
860 |
newSelector = groups.join(","); |
|
861 |
} |
|
862 | ||
863 |
if ( newSelector ) { |
|
864 |
try { |
|
865 |
push.apply( results, |
|
866 |
newContext.querySelectorAll( newSelector ) |
|
867 |
); |
|
868 |
return results; |
|
869 |
} catch(qsaError) { |
|
870 |
} finally { |
|
871 |
if ( !old ) { |
|
872 |
context.removeAttribute("id"); |
|
873 |
} |
|
874 |
} |
|
875 |
} |
|
876 |
} |
|
877 |
} |
|
878 | ||
879 |
// All others |
|
880 |
return select( selector.replace( rtrim, "$1" ), context, results, seed ); |
|
881 |
} |
|
882 | ||
883 |
/** |
|
884 |
* Create key-value caches of limited size |
|
885 |
* @returns {Function(string, Object)} Returns the Object data after storing it on itself with |
|
886 |
* property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) |
|
887 |
* deleting the oldest entry |
|
888 |
*/ |
|
889 |
function createCache() { |
|
890 |
var keys = []; |
|
891 | ||
892 |
function cache( key, value ) { |
|
893 |
// Use (key + " ") to avoid collision with native prototype properties (see Issue #157) |
|
894 |
if ( keys.push( key + " " ) > Expr.cacheLength ) { |
|
895 |
// Only keep the most recent entries |
|
896 |
delete cache[ keys.shift() ]; |
|
897 |
} |
|
898 |
return (cache[ key + " " ] = value); |
|
899 |
} |
|
900 |
return cache; |
|
901 |
} |
|
902 | ||
903 |
/** |
|
904 |
* Mark a function for special use by Sizzle |
|
905 |
* @param {Function} fn The function to mark |
|
906 |
*/ |
|
907 |
function markFunction( fn ) { |
|
908 |
fn[ expando ] = true; |
|
909 |
return fn; |
|
910 |
} |
|
911 | ||
912 |
/** |
|
913 |
* Support testing using an element |
|
914 |
* @param {Function} fn Passed the created div and expects a boolean result |
|
915 |
*/ |
|
916 |
function assert( fn ) { |
|
917 |
var div = document.createElement("div"); |
|
918 | ||
919 |
try { |
|
920 |
return !!fn( div ); |
|
921 |
} catch (e) { |
|
922 |
return false; |
|
923 |
} finally { |
|
924 |
// Remove from its parent by default |
|
925 |
if ( div.parentNode ) { |
|
926 |
div.parentNode.removeChild( div ); |
|
927 |
} |
|
928 |
// release memory in IE |
|
929 |
div = null; |
|
930 |
} |
|
931 |
} |
|
932 | ||
933 |
/** |
|
934 |
* Adds the same handler for all of the specified attrs |
|
935 |
* @param {String} attrs Pipe-separated list of attributes |
|
936 |
* @param {Function} handler The method that will be applied |
|
937 |
*/ |
|
938 |
function addHandle( attrs, handler ) { |
|
939 |
var arr = attrs.split("|"), |
|
940 |
i = attrs.length; |
|
941 | ||
942 |
while ( i-- ) { |
|
943 |
Expr.attrHandle[ arr[i] ] = handler; |
|
944 |
} |
|
945 |
} |
|
946 | ||
947 |
/** |
|
948 |
* Checks document order of two siblings |
|
949 |
* @param {Element} a |
|
950 |
* @param {Element} b |
|
951 |
* @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b |
|
952 |
*/ |
|
953 |
function siblingCheck( a, b ) { |
|
954 |
var cur = b && a, |
|
955 |
diff = cur && a.nodeType === 1 && b.nodeType === 1 && |
|
956 |
( ~b.sourceIndex || MAX_NEGATIVE ) - |
|
957 |
( ~a.sourceIndex || MAX_NEGATIVE ); |
|
958 | ||
959 |
// Use IE sourceIndex if available on both nodes |
|
960 |
if ( diff ) { |
|
961 |
return diff; |
|
962 |
} |
|
963 | ||
964 |
// Check if b follows a |
|
965 |
if ( cur ) { |
|
966 |
while ( (cur = cur.nextSibling) ) { |
|
967 |
if ( cur === b ) { |
|
968 |
return -1; |
|
969 |
} |
|
970 |
} |
|
971 |
} |
|
972 | ||
973 |
return a ? 1 : -1; |
|
974 |
} |
|
975 | ||
976 |
/** |
|
977 |
* Returns a function to use in pseudos for input types |
|
978 |
* @param {String} type |
|
979 |
*/ |
|
980 |
function createInputPseudo( type ) { |
|
981 |
return function( elem ) { |
|
982 |
var name = elem.nodeName.toLowerCase(); |
|
983 |
return name === "input" && elem.type === type; |
|
984 |
}; |
|
985 |
} |
|
986 | ||
987 |
/** |
|
988 |
* Returns a function to use in pseudos for buttons |
|
989 |
* @param {String} type |
|
990 |
*/ |
|
991 |
function createButtonPseudo( type ) { |
|
992 |
return function( elem ) { |
|
993 |
var name = elem.nodeName.toLowerCase(); |
|
994 |
return (name === "input" || name === "button") && elem.type === type; |
|
995 |
}; |
|
996 |
} |
|
997 | ||
998 |
/** |
|
999 |
* Returns a function to use in pseudos for positionals |
|
1000 |
* @param {Function} fn |
|
1001 |
*/ |
|
1002 |
function createPositionalPseudo( fn ) { |
|
1003 |
return markFunction(function( argument ) { |
|
1004 |
argument = +argument; |
|
1005 |
return markFunction(function( seed, matches ) { |
|
1006 |
var j, |
|
1007 |
matchIndexes = fn( [], seed.length, argument ), |
|
1008 |
i = matchIndexes.length; |
|
1009 | ||
1010 |
// Match elements found at the specified indexes |
|
1011 |
while ( i-- ) { |
|
1012 |
if ( seed[ (j = matchIndexes[i]) ] ) { |
|
1013 |
seed[j] = !(matches[j] = seed[j]); |
|
1014 |
} |
|
1015 |
} |
|
1016 |
}); |
|
1017 |
}); |
|
1018 |
} |
|
1019 | ||
1020 |
/** |
|
1021 |
* Checks a node for validity as a Sizzle context |
|
1022 |
* @param {Element|Object=} context |
|
1023 |
* @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value |
|
1024 |
*/ |
|
1025 |
function testContext( context ) { |
|
1026 |
return context && typeof context.getElementsByTagName !== strundefined && context; |
|
1027 |
} |
|
1028 | ||
1029 |
// Expose support vars for convenience |
|
1030 |
support = Sizzle.support = {}; |
|
1031 | ||
1032 |
/** |
|
1033 |
* Detects XML nodes |
|
1034 |
* @param {Element|Object} elem An element or a document |
|
1035 |
* @returns {Boolean} True iff elem is a non-HTML XML node |
|
1036 |
*/ |
|
1037 |
isXML = Sizzle.isXML = function( elem ) { |
|
1038 |
// documentElement is verified for cases where it doesn't yet exist |
|
1039 |
// (such as loading iframes in IE - #4833) |
|
1040 |
var documentElement = elem && (elem.ownerDocument || elem).documentElement; |
|
1041 |
return documentElement ? documentElement.nodeName !== "HTML" : false; |
|
1042 |
}; |
|
1043 | ||
1044 |
/** |
|
1045 |
* Sets document-related variables once based on the current document |
|
1046 |
* @param {Element|Object} [doc] An element or document object to use to set the document |
|
1047 |
* @returns {Object} Returns the current document |
|
1048 |
*/ |
|
1049 |
setDocument = Sizzle.setDocument = function( node ) { |
|
1050 |
var hasCompare, |
|
1051 |
doc = node ? node.ownerDocument || node : preferredDoc, |
|
1052 |
parent = doc.defaultView; |
|
1053 | ||
1054 |
// If no document and documentElement is available, return |
|
1055 |
if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { |
|
1056 |
return document; |
|
1057 |
} |
|
1058 | ||
1059 |
// Set our document |
|
1060 |
document = doc; |
|
1061 |
docElem = doc.documentElement; |
|
1062 | ||
1063 |
// Support tests |
|
1064 |
documentIsHTML = !isXML( doc ); |
|
1065 | ||
1066 |
// Support: IE>8 |
|
1067 |
// If iframe document is assigned to "document" variable and if iframe has been reloaded, |
|
1068 |
// IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 |
|
1069 |
// IE6-8 do not support the defaultView property so parent will be undefined |
|
1070 |
if ( parent && parent !== parent.top ) { |
|
1071 |
// IE11 does not have attachEvent, so all must suffer |
|
1072 |
if ( parent.addEventListener ) { |
|
1073 |
parent.addEventListener( "unload", function() { |
|
1074 |
setDocument(); |
|
1075 |
}, false ); |
|
1076 |
} else if ( parent.attachEvent ) { |
|
1077 |
parent.attachEvent( "onunload", function() { |
|
1078 |
setDocument(); |
|
1079 |
}); |
|
1080 |
} |
|
1081 |
} |
|
1082 | ||
1083 |
/* Attributes |
|
1084 |
---------------------------------------------------------------------- */ |
|
1085 | ||
1086 |
// Support: IE<8 |
|
1087 |
// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) |
|
1088 |
support.attributes = assert(function( div ) { |
|
1089 |
div.className = "i"; |
|
1090 |
return !div.getAttribute("className"); |
|
1091 |
}); |
|
1092 | ||
1093 |
/* getElement(s)By* |
|
1094 |
---------------------------------------------------------------------- */ |
|
1095 | ||
1096 |
// Check if getElementsByTagName("*") returns only elements |
|
1097 |
support.getElementsByTagName = assert(function( div ) { |
|
1098 |
div.appendChild( doc.createComment("") ); |
|
1099 |
return !div.getElementsByTagName("*").length; |
|
1100 |
}); |
|
1101 | ||
1102 |
// Check if getElementsByClassName can be trusted |
|
1103 |
support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { |
|
1104 |
div.innerHTML = "<div class='a'></div><div class='a i'></div>"; |
|
1105 | ||
1106 |
// Support: Safari<4 |
|
1107 |
// Catch class over-caching |
|
1108 |
div.firstChild.className = "i"; |
|
1109 |
// Support: Opera<10 |
|
1110 |
// Catch gEBCN failure to find non-leading classes |
|
1111 |
return div.getElementsByClassName("i").length === 2; |
|
1112 |
}); |
|
1113 | ||
1114 |
// Support: IE<10 |
|
1115 |
// Check if getElementById returns elements by name |
|
1116 |
// The broken getElementById methods don't pick up programatically-set names, |
|
1117 |
// so use a roundabout getElementsByName test |
|
1118 |
support.getById = assert(function( div ) { |
|
1119 |
docElem.appendChild( div ).id = expando; |
|
1120 |
return !doc.getElementsByName || !doc.getElementsByName( expando ).length; |
|
1121 |
}); |
|
1122 | ||
1123 |
// ID find and filter |
|
1124 |
if ( support.getById ) { |
|
1125 |
Expr.find["ID"] = function( id, context ) { |
|
1126 |
if ( typeof context.getElementById !== strundefined && documentIsHTML ) { |
|
1127 |
var m = context.getElementById( id ); |
|
1128 |
// Check parentNode to catch when Blackberry 4.6 returns |
|
1129 |
// nodes that are no longer in the document #6963 |
|
1130 |
return m && m.parentNode ? [m] : []; |
|
1131 |
} |
|
1132 |
}; |
|
1133 |
Expr.filter["ID"] = function( id ) { |
|
1134 |
var attrId = id.replace( runescape, funescape ); |
|
1135 |
return function( elem ) { |
|
1136 |
return elem.getAttribute("id") === attrId; |
|
1137 |
}; |
|
1138 |
}; |
|
1139 |
} else { |
|
1140 |
// Support: IE6/7 |
|
1141 |
// getElementById is not reliable as a find shortcut |
|
1142 |
delete Expr.find["ID"]; |
|
1143 | ||
1144 |
Expr.filter["ID"] = function( id ) { |
|
1145 |
var attrId = id.replace( runescape, funescape ); |
|
1146 |
return function( elem ) { |
|
1147 |
var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); |
|
1148 |
return node && node.value === attrId; |
|
1149 |
}; |
|
1150 |
}; |
|
1151 |
} |
|
1152 | ||
1153 |
// Tag |
|
1154 |
Expr.find["TAG"] = support.getElementsByTagName ? |
|
1155 |
function( tag, context ) { |
|
1156 |
if ( typeof context.getElementsByTagName !== strundefined ) { |
|
1157 |
return context.getElementsByTagName( tag ); |
|
1158 |
} |
|
1159 |
} : |
|
1160 |
function( tag, context ) { |
|
1161 |
var elem, |
|
1162 |
tmp = [], |
|
1163 |
i = 0, |
|
1164 |
results = context.getElementsByTagName( tag ); |
|
1165 | ||
1166 |
// Filter out possible comments |
|
1167 |
if ( tag === "*" ) { |
|
1168 |
while ( (elem = results[i++]) ) { |
|
1169 |
if ( elem.nodeType === 1 ) { |
|
1170 |
tmp.push( elem ); |
|
1171 |
} |
|
1172 |
} |
|
1173 | ||
1174 |
return tmp; |
|
1175 |
} |
|
1176 |
return results; |
|
1177 |
}; |
|
1178 | ||
1179 |
// Class |
|
1180 |
Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { |
|
1181 |
if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { |
|
1182 |
return context.getElementsByClassName( className ); |
|
1183 |
} |
|
1184 |
}; |
|
1185 | ||
1186 |
/* QSA/matchesSelector |
|
1187 |
---------------------------------------------------------------------- */ |
|
1188 | ||
1189 |
// QSA and matchesSelector support |
|
1190 | ||
1191 |
// matchesSelector(:active) reports false when true (IE9/Opera 11.5) |
|
1192 |
rbuggyMatches = []; |
|
1193 | ||
1194 |
// qSa(:focus) reports false when true (Chrome 21) |
|
1195 |
// We allow this because of a bug in IE8/9 that throws an error |
|
1196 |
// whenever `document.activeElement` is accessed on an iframe |
|
1197 |
// So, we allow :focus to pass through QSA all the time to avoid the IE error |
|
1198 |
// See http://bugs.jquery.com/ticket/13378 |
|
1199 |
rbuggyQSA = []; |
|
1200 | ||
1201 |
if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { |
|
1202 |
// Build QSA regex |
|
1203 |
// Regex strategy adopted from Diego Perini |
|
1204 |
assert(function( div ) { |
|
1205 |
// Select is set to empty string on purpose |
|
1206 |
// This is to test IE's treatment of not explicitly |
|
1207 |
// setting a boolean content attribute, |
|
1208 |
// since its presence should be enough |
|
1209 |
// http://bugs.jquery.com/ticket/12359 |
|
1210 |
div.innerHTML = "<select t=''><option selected=''></option></select>"; |
|
1211 | ||
1212 |
// Support: IE8, Opera 10-12 |
|
1213 |
// Nothing should be selected when empty strings follow ^= or $= or *= |
|
1214 |
if ( div.querySelectorAll("[t^='']").length ) { |
|
1215 |
rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); |
|
1216 |
} |
|
1217 | ||
1218 |
// Support: IE8 |
|
1219 |
// Boolean attributes and "value" are not treated correctly |
|
1220 |
if ( !div.querySelectorAll("[selected]").length ) { |
|
1221 |
rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); |
|
1222 |
} |
|
1223 | ||
1224 |
// Webkit/Opera - :checked should return selected option elements |
|
1225 |
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked |
|
1226 |
// IE8 throws error here and will not see later tests |
|
1227 |
if ( !div.querySelectorAll(":checked").length ) { |
|
1228 |
rbuggyQSA.push(":checked"); |
|
1229 |
} |
|
1230 |
}); |
|
1231 | ||
1232 |
assert(function( div ) { |
|
1233 |
// Support: Windows 8 Native Apps |
|
1234 |
// The type and name attributes are restricted during .innerHTML assignment |
|
1235 |
var input = doc.createElement("input"); |
|
1236 |
input.setAttribute( "type", "hidden" ); |
|
1237 |
div.appendChild( input ).setAttribute( "name", "D" ); |
|
1238 | ||
1239 |
// Support: IE8 |
|
1240 |
// Enforce case-sensitivity of name attribute |
|
1241 |
if ( div.querySelectorAll("[name=d]").length ) { |
|
1242 |
rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); |
|
1243 |
} |
|
1244 | ||
1245 |
// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) |
|
1246 |
// IE8 throws error here and will not see later tests |
|
1247 |
if ( !div.querySelectorAll(":enabled").length ) { |
|
1248 |
rbuggyQSA.push( ":enabled", ":disabled" ); |
|
1249 |
} |
|
1250 | ||
1251 |
// Opera 10-11 does not throw on post-comma invalid pseudos |
|
1252 |
div.querySelectorAll("*,:x"); |
|
1253 |
rbuggyQSA.push(",.*:"); |
|
1254 |
}); |
|
1255 |
} |
|
1256 | ||
1257 |
if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || |
|
1258 |
docElem.mozMatchesSelector || |
|
1259 |
docElem.oMatchesSelector || |
|
1260 |
docElem.msMatchesSelector) )) ) { |
|
1261 | ||
1262 |
assert(function( div ) { |
|
1263 |
// Check to see if it's possible to do matchesSelector |
|
1264 |
// on a disconnected node (IE 9) |
|
1265 |
support.disconnectedMatch = matches.call( div, "div" ); |
|
1266 | ||
1267 |
// This should fail with an exception |
|
1268 |
// Gecko does not error, returns false instead |
|
1269 |
matches.call( div, "[s!='']:x" ); |
|
1270 |
rbuggyMatches.push( "!=", pseudos ); |
|
1271 |
}); |
|
1272 |
} |
|
1273 | ||
1274 |
rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); |
|
1275 |
rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); |
|
1276 | ||
1277 |
/* Contains |
|
1278 |
---------------------------------------------------------------------- */ |
|
1279 |
hasCompare = rnative.test( docElem.compareDocumentPosition ); |
|
1280 | ||
1281 |
// Element contains another |
|
1282 |
// Purposefully does not implement inclusive descendent |
|
1283 |
// As in, an element does not contain itself |
|
1284 |
contains = hasCompare || rnative.test( docElem.contains ) ? |
|
1285 |
function( a, b ) { |
|
1286 |
var adown = a.nodeType === 9 ? a.documentElement : a, |
|
1287 |
bup = b && b.parentNode; |
|
1288 |
return a === bup || !!( bup && bup.nodeType === 1 && ( |
|
1289 |
adown.contains ? |
|
1290 |
adown.contains( bup ) : |
|
1291 |
a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 |
|
1292 |
)); |
|
1293 |
} : |
|
1294 |
function( a, b ) { |
|
1295 |
if ( b ) { |
|
1296 |
while ( (b = b.parentNode) ) { |
|
1297 |
if ( b === a ) { |
|
1298 |
return true; |
|
1299 |
} |
|
1300 |
} |
|
1301 |
} |
|
1302 |
return false; |
|
1303 |
}; |
|
1304 | ||
1305 |
/* Sorting |
|
1306 |
---------------------------------------------------------------------- */ |
|
1307 | ||
1308 |
// Document order sorting |
|
1309 |
sortOrder = hasCompare ? |
|
1310 |
function( a, b ) { |
|
1311 | ||
1312 |
// Flag for duplicate removal |
|
1313 |
if ( a === b ) { |
|
1314 |
hasDuplicate = true; |
|
1315 |
return 0; |
|
1316 |
} |
|
1317 | ||
1318 |
// Sort on method existence if only one input has compareDocumentPosition |
|
1319 |
var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; |
|
1320 |
if ( compare ) { |
|
1321 |
return compare; |
|
1322 |
} |
|
1323 | ||
1324 |
// Calculate position if both inputs belong to the same document |
|
1325 |
compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? |
|
1326 |
a.compareDocumentPosition( b ) : |
|
1327 | ||
1328 |
// Otherwise we know they are disconnected |
|
1329 |
1; |
|
1330 | ||
1331 |
// Disconnected nodes |
|
1332 |
if ( compare & 1 || |
|
1333 |
(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { |
|
1334 | ||
1335 |
// Choose the first element that is related to our preferred document |
|
1336 |
if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { |
|
1337 |
return -1; |
|
1338 |
} |
|
1339 |
if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { |
|
1340 |
return 1; |
|
1341 |
} |
|
1342 | ||
1343 |
// Maintain original order |
|
1344 |
return sortInput ? |
|
1345 |
( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : |
|
1346 |
0; |
|
1347 |
} |
|
1348 | ||
1349 |
return compare & 4 ? -1 : 1; |
|
1350 |
} : |
|
1351 |
function( a, b ) { |
|
1352 |
// Exit early if the nodes are identical |
|
1353 |
if ( a === b ) { |
|
1354 |
hasDuplicate = true; |
|
1355 |
return 0; |
|
1356 |
} |
|
1357 | ||
1358 |
var cur, |
|
1359 |
i = 0, |
|
1360 |
aup = a.parentNode, |
|
1361 |
bup = b.parentNode, |
|
1362 |
ap = [ a ], |
|
1363 |
bp = [ b ]; |
|
1364 | ||
1365 |
// Parentless nodes are either documents or disconnected |
|
1366 |
if ( !aup || !bup ) { |
|
1367 |
return a === doc ? -1 : |
|
1368 |
b === doc ? 1 : |
|
1369 |
aup ? -1 : |
|
1370 |
bup ? 1 : |
|
1371 |
sortInput ? |
|
1372 |
( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : |
|
1373 |
0; |
|
1374 | ||
1375 |
// If the nodes are siblings, we can do a quick check |
|
1376 |
} else if ( aup === bup ) { |
|
1377 |
return siblingCheck( a, b ); |
|
1378 |
} |
|
1379 | ||
1380 |
// Otherwise we need full lists of their ancestors for comparison |
|
1381 |
cur = a; |
|
1382 |
while ( (cur = cur.parentNode) ) { |
|
1383 |
ap.unshift( cur ); |
|
1384 |
} |
|
1385 |
cur = b; |
|
1386 |
while ( (cur = cur.parentNode) ) { |
|
1387 |
bp.unshift( cur ); |
|
1388 |
} |
|
1389 | ||
1390 |
// Walk down the tree looking for a discrepancy |
|
1391 |
while ( ap[i] === bp[i] ) { |
|
1392 |
i++; |
|
1393 |
} |
|
1394 | ||
1395 |
return i ? |
|
1396 |
// Do a sibling check if the nodes have a common ancestor |
|
1397 |
siblingCheck( ap[i], bp[i] ) : |
|
1398 | ||
1399 |
// Otherwise nodes in our document sort first |
|
1400 |
ap[i] === preferredDoc ? -1 : |
|
1401 |
bp[i] === preferredDoc ? 1 : |
|
1402 |
0; |
|
1403 |
}; |
|
1404 | ||
1405 |
return doc; |
|
1406 |
}; |
|
1407 | ||
1408 |
Sizzle.matches = function( expr, elements ) { |
|
1409 |
return Sizzle( expr, null, null, elements ); |
|
1410 |
}; |
|
1411 | ||
1412 |
Sizzle.matchesSelector = function( elem, expr ) { |
|
1413 |
// Set document vars if needed |
|
1414 |
if ( ( elem.ownerDocument || elem ) !== document ) { |
|
1415 |
setDocument( elem ); |
|
1416 |
} |
|
1417 | ||
1418 |
// Make sure that attribute selectors are quoted |
|
1419 |
expr = expr.replace( rattributeQuotes, "='$1']" ); |
|
1420 | ||
1421 |
if ( support.matchesSelector && documentIsHTML && |
|
1422 |
( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && |
|
1423 |
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { |
|
1424 | ||
1425 |
try { |
|
1426 |
var ret = matches.call( elem, expr ); |
|
1427 | ||
1428 |
// IE 9's matchesSelector returns false on disconnected nodes |
|
1429 |
if ( ret || support.disconnectedMatch || |
|
1430 |
// As well, disconnected nodes are said to be in a document |
|
1431 |
// fragment in IE 9 |
|
1432 |
elem.document && elem.document.nodeType !== 11 ) { |
|
1433 |
return ret; |
|
1434 |
} |
|
1435 |
} catch(e) {} |
|
1436 |
} |
|
1437 | ||
1438 |
return Sizzle( expr, document, null, [elem] ).length > 0; |
|
1439 |
}; |
|
1440 | ||
1441 |
Sizzle.contains = function( context, elem ) { |
|
1442 |
// Set document vars if needed |
|
1443 |
if ( ( context.ownerDocument || context ) !== document ) { |
|
1444 |
setDocument( context ); |
|
1445 |
} |
|
1446 |
return contains( context, elem ); |
|
1447 |
}; |
|
1448 | ||
1449 |
Sizzle.attr = function( elem, name ) { |
|
1450 |
// Set document vars if needed |
|
1451 |
if ( ( elem.ownerDocument || elem ) !== document ) { |
|
1452 |
setDocument( elem ); |
|
1453 |
} |
|
1454 | ||
1455 |
var fn = Expr.attrHandle[ name.toLowerCase() ], |
|
1456 |
// Don't get fooled by Object.prototype properties (jQuery #13807) |
|
1457 |
val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? |
|
1458 |
fn( elem, name, !documentIsHTML ) : |
|
1459 |
undefined; |
|
1460 | ||
1461 |
return val !== undefined ? |
|
1462 |
val : |
|
1463 |
support.attributes || !documentIsHTML ? |
|
1464 |
elem.getAttribute( name ) : |
|
1465 |
(val = elem.getAttributeNode(name)) && val.specified ? |
|
1466 |
val.value : |
|
1467 |
null; |
|
1468 |
}; |
|
1469 | ||
1470 |
Sizzle.error = function( msg ) { |
|
1471 |
throw new Error( "Syntax error, unrecognized expression: " + msg ); |
|
1472 |
}; |
|
1473 | ||
1474 |
/** |
|
1475 |
* Document sorting and removing duplicates |
|
1476 |
* @param {ArrayLike} results |
|
1477 |
*/ |
|
1478 |
Sizzle.uniqueSort = function( results ) { |
|
1479 |
var elem, |
|
1480 |
duplicates = [], |
|
1481 |
j = 0, |
|
1482 |
i = 0; |
|
1483 | ||
1484 |
// Unless we *know* we can detect duplicates, assume their presence |
|
1485 |
hasDuplicate = !support.detectDuplicates; |
|
1486 |
sortInput = !support.sortStable && results.slice( 0 ); |
|
1487 |
results.sort( sortOrder ); |
|
1488 | ||
1489 |
if ( hasDuplicate ) { |
|
1490 |
while ( (elem = results[i++]) ) { |
|
1491 |
if ( elem === results[ i ] ) { |
|
1492 |
j = duplicates.push( i ); |
|
1493 |
} |
|
1494 |
} |
|
1495 |
while ( j-- ) { |
|
1496 |
results.splice( duplicates[ j ], 1 ); |
|
1497 |
} |
|
1498 |
} |
|
1499 | ||
1500 |
// Clear input after sorting to release objects |
|
1501 |
// See https://github.com/jquery/sizzle/pull/225 |
|
1502 |
sortInput = null; |
|
1503 | ||
1504 |
return results; |
|
1505 |
}; |
|
1506 | ||
1507 |
/** |
|
1508 |
* Utility function for retrieving the text value of an array of DOM nodes |
|
1509 |
* @param {Array|Element} elem |
|
1510 |
*/ |
|
1511 |
getText = Sizzle.getText = function( elem ) { |
|
1512 |
var node, |
|
1513 |
ret = "", |
|
1514 |
i = 0, |
|
1515 |
nodeType = elem.nodeType; |
|
1516 | ||
1517 |
if ( !nodeType ) { |
|
1518 |
// If no nodeType, this is expected to be an array |
|
1519 |
while ( (node = elem[i++]) ) { |
|
1520 |
// Do not traverse comment nodes |
|
1521 |
ret += getText( node ); |
|
1522 |
} |
|
1523 |
} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { |
|
1524 |
// Use textContent for elements |
|
1525 |
// innerText usage removed for consistency of new lines (jQuery #11153) |
|
1526 |
if ( typeof elem.textContent === "string" ) { |
|
1527 |
return elem.textContent; |
|
1528 |
} else { |
|
1529 |
// Traverse its children |
|
1530 |
for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { |
|
1531 |
ret += getText( elem ); |
|
1532 |
} |
|
1533 |
} |
|
1534 |
} else if ( nodeType === 3 || nodeType === 4 ) { |
|
1535 |
return elem.nodeValue; |
|
1536 |
} |
|
1537 |
// Do not include comment or processing instruction nodes |
|
1538 | ||
1539 |
return ret; |
|
1540 |
}; |
|
1541 | ||
1542 |
Expr = Sizzle.selectors = { |
|
1543 | ||
1544 |
// Can be adjusted by the user |
|
1545 |
cacheLength: 50, |
|
1546 | ||
1547 |
createPseudo: markFunction, |
|
1548 | ||
1549 |
match: matchExpr, |
|
1550 | ||
1551 |
attrHandle: {}, |
|
1552 | ||
1553 |
find: {}, |
|
1554 | ||
1555 |
relative: { |
|
1556 |
">": { dir: "parentNode", first: true }, |
|
1557 |
" ": { dir: "parentNode" }, |
|
1558 |
"+": { dir: "previousSibling", first: true }, |
|
1559 |
"~": { dir: "previousSibling" } |
|
1560 |
}, |
|
1561 | ||
1562 |
preFilter: { |
|
1563 |
"ATTR": function( match ) { |
|
1564 |
match[1] = match[1].replace( runescape, funescape ); |
|
1565 | ||
1566 |
// Move the given value to match[3] whether quoted or unquoted |
|
1567 |
match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); |
|
1568 | ||
1569 |
if ( match[2] === "~=" ) { |
|
1570 |
match[3] = " " + match[3] + " "; |
|
1571 |
} |
|
1572 | ||
1573 |
return match.slice( 0, 4 ); |
|
1574 |
}, |
|
1575 | ||
1576 |
"CHILD": function( match ) { |
|
1577 |
/* matches from matchExpr["CHILD"] |
|
1578 |
1 type (only|nth|...) |
|
1579 |
2 what (child|of-type) |
|
1580 |
3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) |
|
1581 |
4 xn-component of xn+y argument ([+-]?\d*n|) |
|
1582 |
5 sign of xn-component |
|
1583 |
6 x of xn-component |
|
1584 |
7 sign of y-component |
|
1585 |
8 y of y-component |
|
1586 |
*/ |
|
1587 |
match[1] = match[1].toLowerCase(); |
|
1588 | ||
1589 |
if ( match[1].slice( 0, 3 ) === "nth" ) { |
|
1590 |
// nth-* requires argument |
|
1591 |
if ( !match[3] ) { |
|
1592 |
Sizzle.error( match[0] ); |
|
1593 |
} |
|
1594 | ||
1595 |
// numeric x and y parameters for Expr.filter.CHILD |
|
1596 |
// remember that false/true cast respectively to 0/1 |
|
1597 |
match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); |
|
1598 |
match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); |
|
1599 | ||
1600 |
// other types prohibit arguments |
|
1601 |
} else if ( match[3] ) { |
|
1602 |
Sizzle.error( match[0] ); |
|
1603 |
} |
|
1604 | ||
1605 |
return match; |
|
1606 |
}, |
|
1607 | ||
1608 |
"PSEUDO": function( match ) { |
|
1609 |
var excess, |
|
1610 |
unquoted = !match[5] && match[2]; |
|
1611 | ||
1612 |
if ( matchExpr["CHILD"].test( match[0] ) ) { |
|
1613 |
return null; |
|
1614 |
} |
|
1615 | ||
1616 |
// Accept quoted arguments as-is |
|
1617 |
if ( match[3] && match[4] !== undefined ) { |
|
1618 |
match[2] = match[4]; |
|
1619 | ||
1620 |
// Strip excess characters from unquoted arguments |
|
1621 |
} else if ( unquoted && rpseudo.test( unquoted ) && |
|
1622 |
// Get excess from tokenize (recursively) |
|
1623 |
(excess = tokenize( unquoted, true )) && |
|
1624 |
// advance to the next closing parenthesis |
|
1625 |
(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { |
|
1626 | ||
1627 |
// excess is a negative index |
|
1628 |
match[0] = match[0].slice( 0, excess ); |
|
1629 |
match[2] = unquoted.slice( 0, excess ); |
|
1630 |
} |
|
1631 | ||
1632 |
// Return only captures needed by the pseudo filter method (type and argument) |
|
1633 |
return match.slice( 0, 3 ); |
|
1634 |
} |
|
1635 |
}, |
|
1636 | ||
1637 |
filter: { |
|
1638 | ||
1639 |
"TAG": function( nodeNameSelector ) { |
|
1640 |
var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); |
|
1641 |
return nodeNameSelector === "*" ? |
|
1642 |
function() { return true; } : |
|
1643 |
function( elem ) { |
|
1644 |
return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; |
|
1645 |
}; |
|
1646 |
}, |
|
1647 | ||
1648 |
"CLASS": function( className ) { |
|
1649 |
var pattern = classCache[ className + " " ]; |
|
1650 | ||
1651 |
return pattern || |
|
1652 |
(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && |
|
1653 |
classCache( className, function( elem ) { |
|
1654 |
return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); |
|
1655 |
}); |
|
1656 |
}, |
|
1657 | ||
1658 |
"ATTR": function( name, operator, check ) { |
|
1659 |
return function( elem ) { |
|
1660 |
var result = Sizzle.attr( elem, name ); |
|
1661 | ||
1662 |
if ( result == null ) { |
|
1663 |
return operator === "!="; |
|
1664 |
} |
|
1665 |
if ( !operator ) { |
|
1666 |
return true; |
|
1667 |
} |
|
1668 | ||
1669 |
result += ""; |
|
1670 | ||
1671 |
return operator === "=" ? result === check : |
|
1672 |
operator === "!=" ? result !== check : |
|
1673 |
operator === "^=" ? check && result.indexOf( check ) === 0 : |
|
1674 |
operator === "*=" ? check && result.indexOf( check ) > -1 : |
|
1675 |
operator === "$=" ? check && result.slice( -check.length ) === check : |
|
1676 |
operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : |
|
1677 |
operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : |
|
1678 |
false; |
|
1679 |
}; |
|
1680 |
}, |
|
1681 | ||
1682 |
"CHILD": function( type, what, argument, first, last ) { |
|
1683 |
var simple = type.slice( 0, 3 ) !== "nth", |
|
1684 |
forward = type.slice( -4 ) !== "last", |
|
1685 |
ofType = what === "of-type"; |
|
1686 | ||
1687 |
return first === 1 && last === 0 ? |
|
1688 | ||
1689 |
// Shortcut for :nth-*(n) |
|
1690 |
function( elem ) { |
|
1691 |
return !!elem.parentNode; |
|
1692 |
} : |
|
1693 | ||
1694 |
function( elem, context, xml ) { |
|
1695 |
var cache, outerCache, node, diff, nodeIndex, start, |
|
1696 |
dir = simple !== forward ? "nextSibling" : "previousSibling", |
|
1697 |
parent = elem.parentNode, |
|
1698 |
name = ofType && elem.nodeName.toLowerCase(), |
|
1699 |
useCache = !xml && !ofType; |
|
1700 | ||
1701 |
if ( parent ) { |
|
1702 | ||
1703 |
// :(first|last|only)-(child|of-type) |
|
1704 |
if ( simple ) { |
|
1705 |
while ( dir ) { |
|
1706 |
node = elem; |
|
1707 |
while ( (node = node[ dir ]) ) { |
|
1708 |
if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { |
|
1709 |
return false; |
|
1710 |
} |
|
1711 |
} |
|
1712 |
// Reverse direction for :only-* (if we haven't yet done so) |
|
1713 |
start = dir = type === "only" && !start && "nextSibling"; |
|
1714 |
} |
|
1715 |
return true; |
|
1716 |
} |
|
1717 | ||
1718 |
start = [ forward ? parent.firstChild : parent.lastChild ]; |
|
1719 | ||
1720 |
// non-xml :nth-child(...) stores cache data on `parent` |
|
1721 |
if ( forward && useCache ) { |
|
1722 |
// Seek `elem` from a previously-cached index |
|
1723 |
outerCache = parent[ expando ] || (parent[ expando ] = {}); |
|
1724 |
cache = outerCache[ type ] || []; |
|
1725 |
nodeIndex = cache[0] === dirruns && cache[1]; |
|
1726 |
diff = cache[0] === dirruns && cache[2]; |
|
1727 |
node = nodeIndex && parent.childNodes[ nodeIndex ]; |
|
1728 | ||
1729 |
while ( (node = ++nodeIndex && node && node[ dir ] || |
|
1730 | ||
1731 |
// Fallback to seeking `elem` from the start |
|
1732 |
(diff = nodeIndex = 0) || start.pop()) ) { |
|
1733 | ||
1734 |
// When found, cache indexes on `parent` and break |
|
1735 |
if ( node.nodeType === 1 && ++diff && node === elem ) { |
|
1736 |
outerCache[ type ] = [ dirruns, nodeIndex, diff ]; |
|
1737 |
break; |
|
1738 |
} |
|
1739 |
} |
|
1740 | ||
1741 |
// Use previously-cached element index if available |
|
1742 |
} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { |
|
1743 |
diff = cache[1]; |
|
1744 | ||
1745 |
// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) |
|
1746 |
} else { |
|
1747 |
// Use the same loop as above to seek `elem` from the start |
|
1748 |
while ( (node = ++nodeIndex && node && node[ dir ] || |
|
1749 |
(diff = nodeIndex = 0) || start.pop()) ) { |
|
1750 | ||
1751 |
if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { |
|
1752 |
// Cache the index of each encountered element |
|
1753 |
if ( useCache ) { |
|
1754 |
(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; |
|
1755 |
} |
|
1756 | ||
1757 |
if ( node === elem ) { |
|
1758 |
break; |
|
1759 |
} |
|
1760 |
} |
|
1761 |
} |
|
1762 |
} |
|
1763 | ||
1764 |
// Incorporate the offset, then check against cycle size |
|
1765 |
diff -= last; |
|
1766 |
return diff === first || ( diff % first === 0 && diff / first >= 0 ); |
|
1767 |
} |
|
1768 |
}; |
|
1769 |
}, |
|
1770 | ||
1771 |
"PSEUDO": function( pseudo, argument ) { |
|
1772 |
// pseudo-class names are case-insensitive |
|
1773 |
// http://www.w3.org/TR/selectors/#pseudo-classes |
|
1774 |
// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters |
|
1775 |
// Remember that setFilters inherits from pseudos |
|
1776 |
var args, |
|
1777 |
fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || |
|
1778 |
Sizzle.error( "unsupported pseudo: " + pseudo ); |
|
1779 | ||
1780 |
// The user may use createPseudo to indicate that |
|
1781 |
// arguments are needed to create the filter function |
|
1782 |
// just as Sizzle does |
|
1783 |
if ( fn[ expando ] ) { |
|
1784 |
return fn( argument ); |
|
1785 |
} |
|
1786 | ||
1787 |
// But maintain support for old signatures |
|
1788 |
if ( fn.length > 1 ) { |
|
1789 |
args = [ pseudo, pseudo, "", argument ]; |
|
1790 |
return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? |
|
1791 |
markFunction(function( seed, matches ) { |
|
1792 |
var idx, |
|
1793 |
matched = fn( seed, argument ), |
|
1794 |
i = matched.length; |
|
1795 |
while ( i-- ) { |
|
1796 |
idx = indexOf.call( seed, matched[i] ); |
|
1797 |
seed[ idx ] = !( matches[ idx ] = matched[i] ); |
|
1798 |
} |
|
1799 |
}) : |
|
1800 |
function( elem ) { |
|
1801 |
return fn( elem, 0, args ); |
|
1802 |
}; |
|
1803 |
} |
|
1804 | ||
1805 |
return fn; |
|
1806 |
} |
|
1807 |
}, |
|
1808 | ||
1809 |
pseudos: { |
|
1810 |
// Potentially complex pseudos |
|
1811 |
"not": markFunction(function( selector ) { |
|
1812 |
// Trim the selector passed to compile |
|
1813 |
// to avoid treating leading and trailing |
|
1814 |
// spaces as combinators |
|
1815 |
var input = [], |
|
1816 |
results = [], |
|
1817 |
matcher = compile( selector.replace( rtrim, "$1" ) ); |
|
1818 | ||
1819 |
return matcher[ expando ] ? |
|
1820 |
markFunction(function( seed, matches, context, xml ) { |
|
1821 |
var elem, |
|
1822 |
unmatched = matcher( seed, null, xml, [] ), |
|
1823 |
i = seed.length; |
|
1824 | ||
1825 |
// Match elements unmatched by `matcher` |
|
1826 |
while ( i-- ) { |
|
1827 |
if ( (elem = unmatched[i]) ) { |
|
1828 |
seed[i] = !(matches[i] = elem); |
|
1829 |
} |
|
1830 |
} |
|
1831 |
}) : |
|
1832 |
function( elem, context, xml ) { |
|
1833 |
input[0] = elem; |
|
1834 |
matcher( input, null, xml, results ); |
|
1835 |
return !results.pop(); |
|
1836 |
}; |
|
1837 |
}), |
|
1838 | ||
1839 |
"has": markFunction(function( selector ) { |
|
1840 |
return function( elem ) { |
|
1841 |
return Sizzle( selector, elem ).length > 0; |
|
1842 |
}; |
|
1843 |
}), |
|
1844 | ||
1845 |
"contains": markFunction(function( text ) { |
|
1846 |
return function( elem ) { |
|
1847 |
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; |
|
1848 |
}; |
|
1849 |
}), |
|
1850 | ||
1851 |
// "Whether an element is represented by a :lang() selector |
|
1852 |
// is based solely on the element's language value |
|
1853 |
// being equal to the identifier C, |
|
1854 |
// or beginning with the identifier C immediately followed by "-". |
|
1855 |
// The matching of C against the element's language value is performed case-insensitively. |
|
1856 |
// The identifier C does not have to be a valid language name." |
|
1857 |
// http://www.w3.org/TR/selectors/#lang-pseudo |
|
1858 |
"lang": markFunction( function( lang ) { |
|
1859 |
// lang value must be a valid identifier |
|
1860 |
if ( !ridentifier.test(lang || "") ) { |
|
1861 |
Sizzle.error( "unsupported lang: " + lang ); |
|
1862 |
} |
|
1863 |
lang = lang.replace( runescape, funescape ).toLowerCase(); |
|
1864 |
return function( elem ) { |
|
1865 |
var elemLang; |
|
1866 |
do { |
|
1867 |
if ( (elemLang = documentIsHTML ? |
|
1868 |
elem.lang : |
|
1869 |
elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { |
|
1870 | ||
1871 |
elemLang = elemLang.toLowerCase(); |
|
1872 |
return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; |
|
1873 |
} |
|
1874 |
} while ( (elem = elem.parentNode) && elem.nodeType === 1 ); |
|
1875 |
return false; |
|
1876 |
}; |
|
1877 |
}), |
|
1878 | ||
1879 |
// Miscellaneous |
|
1880 |
"target": function( elem ) { |
|
1881 |
var hash = window.location && window.location.hash; |
|
1882 |
return hash && hash.slice( 1 ) === elem.id; |
|
1883 |
}, |
|
1884 | ||
1885 |
"root": function( elem ) { |
|
1886 |
return elem === docElem; |
|
1887 |
}, |
|
1888 | ||
1889 |
"focus": function( elem ) { |
|
1890 |
return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); |
|
1891 |
}, |
|
1892 | ||
1893 |
// Boolean properties |
|
1894 |
"enabled": function( elem ) { |
|
1895 |
return elem.disabled === false; |
|
1896 |
}, |
|
1897 | ||
1898 |
"disabled": function( elem ) { |
|
1899 |
return elem.disabled === true; |
|
1900 |
}, |
|
1901 | ||
1902 |
"checked": function( elem ) { |
|
1903 |
// In CSS3, :checked should return both checked and selected elements |
|
1904 |
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked |
|
1905 |
var nodeName = elem.nodeName.toLowerCase(); |
|
1906 |
return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); |
|
1907 |
}, |
|
1908 | ||
1909 |
"selected": function( elem ) { |
|
1910 |
// Accessing this property makes selected-by-default |
|
1911 |
// options in Safari work properly |
|
1912 |
if ( elem.parentNode ) { |
|
1913 |
elem.parentNode.selectedIndex; |
|
1914 |
} |
|
1915 | ||
1916 |
return elem.selected === true; |
|
1917 |
}, |
|
1918 | ||
1919 |
// Contents |
|
1920 |
"empty": function( elem ) { |
|
1921 |
// http://www.w3.org/TR/selectors/#empty-pseudo |
|
1922 |
// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), |
|
1923 |
// but not by others (comment: 8; processing instruction: 7; etc.) |
|
1924 |
// nodeType < 6 works because attributes (2) do not appear as children |
|
1925 |
for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { |
|
1926 |
if ( elem.nodeType < 6 ) { |
|
1927 |
return false; |
|
1928 |
} |
|
1929 |
} |
|
1930 |
return true; |
|
1931 |
}, |
|
1932 | ||
1933 |
"parent": function( elem ) { |
|
1934 |
return !Expr.pseudos["empty"]( elem ); |
|
1935 |
}, |
|
1936 | ||
1937 |
// Element/input types |
|
1938 |
"header": function( elem ) { |
|
1939 |
return rheader.test( elem.nodeName ); |
|
1940 |
}, |
|
1941 | ||
1942 |
"input": function( elem ) { |
|
1943 |
return rinputs.test( elem.nodeName ); |
|
1944 |
}, |
|
1945 | ||
1946 |
"button": function( elem ) { |
|
1947 |
var name = elem.nodeName.toLowerCase(); |
|
1948 |
return name === "input" && elem.type === "button" || name === "button"; |
|
1949 |
}, |
|
1950 | ||
1951 |
"text": function( elem ) { |
|
1952 |
var attr; |
|
1953 |
return elem.nodeName.toLowerCase() === "input" && |
|
1954 |
elem.type === "text" && |
|
1955 | ||
1956 |
// Support: IE<8 |
|
1957 |
// New HTML5 attribute values (e.g., "search") appear with elem.type === "text" |
|
1958 |
( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); |
|
1959 |
}, |
|
1960 | ||
1961 |
// Position-in-collection |
|
1962 |
"first": createPositionalPseudo(function() { |
|
1963 |
return [ 0 ]; |
|
1964 |
}), |
|
1965 | ||
1966 |
"last": createPositionalPseudo(function( matchIndexes, length ) { |
|
1967 |
return [ length - 1 ]; |
|
1968 |
}), |
|
1969 | ||
1970 |
"eq": createPositionalPseudo(function( matchIndexes, length, argument ) { |
|
1971 |
return [ argument < 0 ? argument + length : argument ]; |
|
1972 |
}), |
|
1973 | ||
1974 |
"even": createPositionalPseudo(function( matchIndexes, length ) { |
|
1975 |
var i = 0; |
|
1976 |
for ( ; i < length; i += 2 ) { |
|
1977 |
matchIndexes.push( i ); |
|
1978 |
} |
|
1979 |
return matchIndexes; |
|
1980 |
}), |
|
1981 | ||
1982 |
"odd": createPositionalPseudo(function( matchIndexes, length ) { |
|
1983 |
var i = 1; |
|
1984 |
for ( ; i < length; i += 2 ) { |
|
1985 |
matchIndexes.push( i ); |
|
1986 |
} |
|
1987 |
return matchIndexes; |
|
1988 |
}), |
|
1989 | ||
1990 |
"lt": createPositionalPseudo(function( matchIndexes, length, argument ) { |
|
1991 |
var i = argument < 0 ? argument + length : argument; |
|
1992 |
for ( ; --i >= 0; ) { |
|
1993 |
matchIndexes.push( i ); |
|
1994 |
} |
|
1995 |
return matchIndexes; |
|
1996 |
}), |
|
1997 | ||
1998 |
"gt": createPositionalPseudo(function( matchIndexes, length, argument ) { |
|
1999 |
var i = argument < 0 ? argument + length : argument; |
|
2000 |
for ( ; ++i < length; ) { |
|
2001 |
matchIndexes.push( i ); |
|
2002 |
} |
|
2003 |
return matchIndexes; |
|
2004 |
}) |
|
2005 |
} |
|
2006 |
}; |
|
2007 | ||
2008 |
Expr.pseudos["nth"] = Expr.pseudos["eq"]; |
|
2009 | ||
2010 |
// Add button/input type pseudos |
|
2011 |
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { |
|
2012 |
Expr.pseudos[ i ] = createInputPseudo( i ); |
|
2013 |
} |
|
2014 |
for ( i in { submit: true, reset: true } ) { |
|
2015 |
Expr.pseudos[ i ] = createButtonPseudo( i ); |
|
2016 |
} |
|
2017 | ||
2018 |
// Easy API for creating new setFilters |
|
2019 |
function setFilters() {} |
|
2020 |
setFilters.prototype = Expr.filters = Expr.pseudos; |
|
2021 |
Expr.setFilters = new setFilters(); |
|
2022 | ||
2023 |
function tokenize( selector, parseOnly ) { |
|
2024 |
var matched, match, tokens, type, |
|
2025 |
soFar, groups, preFilters, |
|
2026 |
cached = tokenCache[ selector + " " ]; |
|
2027 | ||
2028 |
if ( cached ) { |
|
2029 |
return parseOnly ? 0 : cached.slice( 0 ); |
|
2030 |
} |
|
2031 | ||
2032 |
soFar = selector; |
|
2033 |
groups = []; |
|
2034 |
preFilters = Expr.preFilter; |
|
2035 | ||
2036 |
while ( soFar ) { |
|
2037 | ||
2038 |
// Comma and first run |
|
2039 |
if ( !matched || (match = rcomma.exec( soFar )) ) { |
|
2040 |
if ( match ) { |
|
2041 |
// Don't consume trailing commas as valid |
|
2042 |
soFar = soFar.slice( match[0].length ) || soFar; |
|
2043 |
} |
|
2044 |
groups.push( (tokens = []) ); |
|
2045 |
} |
|
2046 | ||
2047 |
matched = false; |
|
2048 | ||
2049 |
// Combinators |
|
2050 |
if ( (match = rcombinators.exec( soFar )) ) { |
|
2051 |
matched = match.shift(); |
|
2052 |
tokens.push({ |
|
2053 |
value: matched, |
|
2054 |
// Cast descendant combinators to space |
|
2055 |
type: match[0].replace( rtrim, " " ) |
|
2056 |
}); |
|
2057 |
soFar = soFar.slice( matched.length ); |
|
2058 |
} |
|
2059 | ||
2060 |
// Filters |
|
2061 |
for ( type in Expr.filter ) { |
|
2062 |
if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || |
|
2063 |
(match = preFilters[ type ]( match ))) ) { |
|
2064 |
matched = match.shift(); |
|
2065 |
tokens.push({ |
|
2066 |
value: matched, |
|
2067 |
type: type, |
|
2068 |
matches: match |
|
2069 |
}); |
|
2070 |
soFar = soFar.slice( matched.length ); |
|
2071 |
} |
|
2072 |
} |
|
2073 | ||
2074 |
if ( !matched ) { |
|
2075 |
break; |
|
2076 |
} |
|
2077 |
} |
|
2078 | ||
2079 |
// Return the length of the invalid excess |
|
2080 |
// if we're just parsing |
|
2081 |
// Otherwise, throw an error or return tokens |
|
2082 |
return parseOnly ? |
|
2083 |
soFar.length : |
|
2084 |
soFar ? |
|
2085 |
Sizzle.error( selector ) : |
|
2086 |
// Cache the tokens |
|
2087 |
tokenCache( selector, groups ).slice( 0 ); |
|
2088 |
} |
|
2089 | ||
2090 |
function toSelector( tokens ) { |
|
2091 |
var i = 0, |
|
2092 |
len = tokens.length, |
|
2093 |
selector = ""; |
|
2094 |
for ( ; i < len; i++ ) { |
|
2095 |
selector += tokens[i].value; |
|
2096 |
} |
|
2097 |
return selector; |
|
2098 |
} |
|
2099 | ||
2100 |
function addCombinator( matcher, combinator, base ) { |
|
2101 |
var dir = combinator.dir, |
|
2102 |
checkNonElements = base && dir === "parentNode", |
|
2103 |
doneName = done++; |
|
2104 | ||
2105 |
return combinator.first ? |
|
2106 |
// Check against closest ancestor/preceding element |
|
2107 |
function( elem, context, xml ) { |
|
2108 |
while ( (elem = elem[ dir ]) ) { |
|
2109 |
if ( elem.nodeType === 1 || checkNonElements ) { |
|
2110 |
return matcher( elem, context, xml ); |
|
2111 |
} |
|
2112 |
} |
|
2113 |
} : |
|
2114 | ||
2115 |
// Check against all ancestor/preceding elements |
|
2116 |
function( elem, context, xml ) { |
|
2117 |
var oldCache, outerCache, |
|
2118 |
newCache = [ dirruns, doneName ]; |
|
2119 | ||
2120 |
// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching |
|
2121 |
if ( xml ) { |
|
2122 |
while ( (elem = elem[ dir ]) ) { |
|
2123 |
if ( elem.nodeType === 1 || checkNonElements ) { |
|
2124 |
if ( matcher( elem, context, xml ) ) { |
|
2125 |
return true; |
|
2126 |
} |
|
2127 |
} |
|
2128 |
} |
|
2129 |
} else { |
|
2130 |
while ( (elem = elem[ dir ]) ) { |
|
2131 |
if ( elem.nodeType === 1 || checkNonElements ) { |
|
2132 |
outerCache = elem[ expando ] || (elem[ expando ] = {}); |
|
2133 |
if ( (oldCache = outerCache[ dir ]) && |
|
2134 |
oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { |
|
2135 | ||
2136 |
// Assign to newCache so results back-propagate to previous elements |
|
2137 |
return (newCache[ 2 ] = oldCache[ 2 ]); |
|
2138 |
} else { |
|
2139 |
// Reuse newcache so results back-propagate to previous elements |
|
2140 |
outerCache[ dir ] = newCache; |
|
2141 | ||
2142 |
// A match means we're done; a fail means we have to keep checking |
|
2143 |
if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { |
|
2144 |
return true; |
|
2145 |
} |
|
2146 |
} |
|
2147 |
} |
|
2148 |
} |
|
2149 |
} |
|
2150 |
}; |
|
2151 |
} |
|
2152 | ||
2153 |
function elementMatcher( matchers ) { |
|
2154 |
return matchers.length > 1 ? |
|
2155 |
function( elem, context, xml ) { |
|
2156 |
var i = matchers.length; |
|
2157 |
while ( i-- ) { |
|
2158 |
if ( !matchers[i]( elem, context, xml ) ) { |
|
2159 |
return false; |
|
2160 |
} |
|
2161 |
} |
|
2162 |
return true; |
|
2163 |
} : |
|
2164 |
matchers[0]; |
|
2165 |
} |
|
2166 | ||
2167 |
function condense( unmatched, map, filter, context, xml ) { |
|
2168 |
var elem, |
|
2169 |
newUnmatched = [], |
|
2170 |
i = 0, |
|
2171 |
len = unmatched.length, |
|
2172 |
mapped = map != null; |
|
2173 | ||
2174 |
for ( ; i < len; i++ ) { |
|
2175 |
if ( (elem = unmatched[i]) ) { |
|
2176 |
if ( !filter || filter( elem, context, xml ) ) { |
|
2177 |
newUnmatched.push( elem ); |
|
2178 |
if ( mapped ) { |
|
2179 |
map.push( i ); |
|
2180 |
} |
|
2181 |
} |
|
2182 |
} |
|
2183 |
} |
|
2184 | ||
2185 |
return newUnmatched; |
|
2186 |
} |
|
2187 | ||
2188 |
function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { |
|
2189 |
if ( postFilter && !postFilter[ expando ] ) { |
|
2190 |
postFilter = setMatcher( postFilter ); |
|
2191 |
} |
|
2192 |
if ( postFinder && !postFinder[ expando ] ) { |
|
2193 |
postFinder = setMatcher( postFinder, postSelector ); |
|
2194 |
} |
|
2195 |
return markFunction(function( seed, results, context, xml ) { |
|
2196 |
var temp, i, elem, |
|
2197 |
preMap = [], |
|
2198 |
postMap = [], |
|
2199 |
preexisting = results.length, |
|
2200 | ||
2201 |
// Get initial elements from seed or context |
|
2202 |
elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), |
|
2203 | ||
2204 |
// Prefilter to get matcher input, preserving a map for seed-results synchronization |
|
2205 |
matcherIn = preFilter && ( seed || !selector ) ? |
|
2206 |
condense( elems, preMap, preFilter, context, xml ) : |
|
2207 |
elems, |
|
2208 | ||
2209 |
matcherOut = matcher ? |
|
2210 |
// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, |
|
2211 |
postFinder || ( seed ? preFilter : preexisting || postFilter ) ? |
|
2212 | ||
2213 |
// ...intermediate processing is necessary |
|
2214 |
[] : |
|
2215 | ||
2216 |
// ...otherwise use results directly |
|
2217 |
results : |
|
2218 |
matcherIn; |
|
2219 | ||
2220 |
// Find primary matches |
|
2221 |
if ( matcher ) { |
|
2222 |
matcher( matcherIn, matcherOut, context, xml ); |
|
2223 |
} |
|
2224 | ||
2225 |
// Apply postFilter |
|
2226 |
if ( postFilter ) { |
|
2227 |
temp = condense( matcherOut, postMap ); |
|
2228 |
postFilter( temp, [], context, xml ); |
|
2229 | ||
2230 |
// Un-match failing elements by moving them back to matcherIn |
|
2231 |
i = temp.length; |
|
2232 |
while ( i-- ) { |
|
2233 |
if ( (elem = temp[i]) ) { |
|
2234 |
matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); |
|
2235 |
} |
|
2236 |
} |
|
2237 |
} |
|
2238 | ||
2239 |
if ( seed ) { |
|
2240 |
if ( postFinder || preFilter ) { |
|
2241 |
if ( postFinder ) { |
|
2242 |
// Get the final matcherOut by condensing this intermediate into postFinder contexts |
|
2243 |
temp = []; |
|
2244 |
i = matcherOut.length; |
|
2245 |
while ( i-- ) { |
|
2246 |
if ( (elem = matcherOut[i]) ) { |
|
2247 |
// Restore matcherIn since elem is not yet a final match |
|
2248 |
temp.push( (matcherIn[i] = elem) ); |
|
2249 |
} |
|
2250 |
} |
|
2251 |
postFinder( null, (matcherOut = []), temp, xml ); |
|
2252 |
} |
|
2253 | ||
2254 |
// Move matched elements from seed to results to keep them synchronized |
|
2255 |
i = matcherOut.length; |
|
2256 |
while ( i-- ) { |
|
2257 |
if ( (elem = matcherOut[i]) && |
|
2258 |
(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { |
|
2259 | ||
2260 |
seed[temp] = !(results[temp] = elem); |
|
2261 |
} |
|
2262 |
} |
|
2263 |
} |
|
2264 | ||
2265 |
// Add elements to results, through postFinder if defined |
|
2266 |
} else { |
|
2267 |
matcherOut = condense( |
|
2268 |
matcherOut === results ? |
|
2269 |
matcherOut.splice( preexisting, matcherOut.length ) : |
|
2270 |
matcherOut |
|
2271 |
); |
|
2272 |
if ( postFinder ) { |
|
2273 |
postFinder( null, results, matcherOut, xml ); |
|
2274 |
} else { |
|
2275 |
push.apply( results, matcherOut ); |
|
2276 |
} |
|
2277 |
} |
|
2278 |
}); |
|
2279 |
} |
|
2280 | ||
2281 |
function matcherFromTokens( tokens ) { |
|
2282 |
var checkContext, matcher, j, |
|
2283 |
len = tokens.length, |
|
2284 |
leadingRelative = Expr.relative[ tokens[0].type ], |
|
2285 |
implicitRelative = leadingRelative || Expr.relative[" "], |
|
2286 |
i = leadingRelative ? 1 : 0, |
|
2287 | ||
2288 |
// The foundational matcher ensures that elements are reachable from top-level context(s) |
|
2289 |
matchContext = addCombinator( function( elem ) { |
|
2290 |
return elem === checkContext; |
|
2291 |
}, implicitRelative, true ), |
|
2292 |
matchAnyContext = addCombinator( function( elem ) { |
|
2293 |
return indexOf.call( checkContext, elem ) > -1; |
|
2294 |
}, implicitRelative, true ), |
|
2295 |
matchers = [ function( elem, context, xml ) { |
|
2296 |
return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( |
|
2297 |
(checkContext = context).nodeType ? |
|
2298 |
matchContext( elem, context, xml ) : |
|
2299 |
matchAnyContext( elem, context, xml ) ); |
|
2300 |
} ]; |
|
2301 | ||
2302 |
for ( ; i < len; i++ ) { |
|
2303 |
if ( (matcher = Expr.relative[ tokens[i].type ]) ) { |
|
2304 |
matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; |
|
2305 |
} else { |
|
2306 |
matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); |
|
2307 | ||
2308 |
// Return special upon seeing a positional matcher |
|
2309 |
if ( matcher[ expando ] ) { |
|
2310 |
// Find the next relative operator (if any) for proper handling |
|
2311 |
j = ++i; |
|
2312 |
for ( ; j < len; j++ ) { |
|
2313 |
if ( Expr.relative[ tokens[j].type ] ) { |
|
2314 |
break; |
|
2315 |
} |
|
2316 |
} |
|
2317 |
return setMatcher( |
|
2318 |
i > 1 && elementMatcher( matchers ), |
|
2319 |
i > 1 && toSelector( |
|
2320 |
// If the preceding token was a descendant combinator, insert an implicit any-element `*` |
|
2321 |
tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) |
|
2322 |
).replace( rtrim, "$1" ), |
|
2323 |
matcher, |
|
2324 |
i < j && matcherFromTokens( tokens.slice( i, j ) ), |
|
2325 |
j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), |
|
2326 |
j < len && toSelector( tokens ) |
|
2327 |
); |
|
2328 |
} |
|
2329 |
matchers.push( matcher ); |
|
2330 |
} |
|
2331 |
} |
|
2332 | ||
2333 |
return elementMatcher( matchers ); |
|
2334 |
} |
|
2335 | ||
2336 |
function matcherFromGroupMatchers( elementMatchers, setMatchers ) { |
|
2337 |
var bySet = setMatchers.length > 0, |
|
2338 |
byElement = elementMatchers.length > 0, |
|
2339 |
superMatcher = function( seed, context, xml, results, outermost ) { |
|
2340 |
var elem, j, matcher, |
|
2341 |
matchedCount = 0, |
|
2342 |
i = "0", |
|
2343 |
unmatched = seed && [], |
|
2344 |
setMatched = [], |
|
2345 |
contextBackup = outermostContext, |
|
2346 |
// We must always have either seed elements or outermost context |
|
2347 |
elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), |
|
2348 |
// Use integer dirruns iff this is the outermost matcher |
|
2349 |
dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), |
|
2350 |
len = elems.length; |
|
2351 | ||
2352 |
if ( outermost ) { |
|
2353 |
outermostContext = context !== document && context; |
|
2354 |
} |
|
2355 | ||
2356 |
// Add elements passing elementMatchers directly to results |
|
2357 |
// Keep `i` a string if there are no elements so `matchedCount` will be "00" below |
|
2358 |
// Support: IE<9, Safari |
|
2359 |
// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id |
|
2360 |
for ( ; i !== len && (elem = elems[i]) != null; i++ ) { |
|
2361 |
if ( byElement && elem ) { |
|
2362 |
j = 0; |
|
2363 |
while ( (matcher = elementMatchers[j++]) ) { |
|
2364 |
if ( matcher( elem, context, xml ) ) { |
|
2365 |
results.push( elem ); |
|
2366 |
break; |
|
2367 |
} |
|
2368 |
} |
|
2369 |
if ( outermost ) { |
|
2370 |
dirruns = dirrunsUnique; |
|
2371 |
} |
|
2372 |
} |
|
2373 | ||
2374 |
// Track unmatched elements for set filters |
|
2375 |
if ( bySet ) { |
|
2376 |
// They will have gone through all possible matchers |
|
2377 |
if ( (elem = !matcher && elem) ) { |
|
2378 |
matchedCount--; |
|
2379 |
} |
|
2380 | ||
2381 |
// Lengthen the array for every element, matched or not |
|
2382 |
if ( seed ) { |
|
2383 |
unmatched.push( elem ); |
|
2384 |
} |
|
2385 |
} |
|
2386 |
} |
|
2387 | ||
2388 |
// Apply set filters to unmatched elements |
|
2389 |
matchedCount += i; |
|
2390 |
if ( bySet && i !== matchedCount ) { |
|
2391 |
j = 0; |
|
2392 |
while ( (matcher = setMatchers[j++]) ) { |
|
2393 |
matcher( unmatched, setMatched, context, xml ); |
|
2394 |
} |
|
2395 | ||
2396 |
if ( seed ) { |
|
2397 |
// Reintegrate element matches to eliminate the need for sorting |
|
2398 |
if ( matchedCount > 0 ) { |
|
2399 |
while ( i-- ) { |
|
2400 |
if ( !(unmatched[i] || setMatched[i]) ) { |
|
2401 |
setMatched[i] = pop.call( results ); |
|
2402 |
} |
|
2403 |
} |
|
2404 |
} |
|
2405 | ||
2406 |
// Discard index placeholder values to get only actual matches |
|
2407 |
setMatched = condense( setMatched ); |
|
2408 |
} |
|
2409 | ||
2410 |
// Add matches to results |
|
2411 |
push.apply( results, setMatched ); |
|
2412 | ||
2413 |
// Seedless set matches succeeding multiple successful matchers stipulate sorting |
|
2414 |
if ( outermost && !seed && setMatched.length > 0 && |
|
2415 |
( matchedCount + setMatchers.length ) > 1 ) { |
|
2416 | ||
2417 |
Sizzle.uniqueSort( results ); |
|
2418 |
} |
|
2419 |
} |
|
2420 | ||
2421 |
// Override manipulation of globals by nested matchers |
|
2422 |
if ( outermost ) { |
|
2423 |
dirruns = dirrunsUnique; |
|
2424 |
outermostContext = contextBackup; |
|
2425 |
} |
|
2426 | ||
2427 |
return unmatched; |
|
2428 |
}; |
|
2429 | ||
2430 |
return bySet ? |
|
2431 |
markFunction( superMatcher ) : |
|
2432 |
superMatcher; |
|
2433 |
} |
|
2434 | ||
2435 |
compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { |
|
2436 |
var i, |
|
2437 |
setMatchers = [], |
|
2438 |
elementMatchers = [], |
|
2439 |
cached = compilerCache[ selector + " " ]; |
|
2440 | ||
2441 |
if ( !cached ) { |
|
2442 |
// Generate a function of recursive functions that can be used to check each element |
|
2443 |
if ( !group ) { |
|
2444 |
group = tokenize( selector ); |
|
2445 |
} |
|
2446 |
i = group.length; |
|
2447 |
while ( i-- ) { |
|
2448 |
cached = matcherFromTokens( group[i] ); |
|
2449 |
if ( cached[ expando ] ) { |
|
2450 |
setMatchers.push( cached ); |
|
2451 |
} else { |
|
2452 |
elementMatchers.push( cached ); |
|
2453 |
} |
|
2454 |
} |
|
2455 | ||
2456 |
// Cache the compiled function |
|
2457 |
cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); |
|
2458 |
} |
|
2459 |
return cached; |
|
2460 |
}; |
|
2461 | ||
2462 |
function multipleContexts( selector, contexts, results ) { |
|
2463 |
var i = 0, |
|
2464 |
len = contexts.length; |
|
2465 |
for ( ; i < len; i++ ) { |
|
2466 |
Sizzle( selector, contexts[i], results ); |
|
2467 |
} |
|
2468 |
return results; |
|
2469 |
} |
|
2470 | ||
2471 |
function select( selector, context, results, seed ) { |
|
2472 |
var i, tokens, token, type, find, |
|
2473 |
match = tokenize( selector ); |
|
2474 | ||
2475 |
if ( !seed ) { |
|
2476 |
// Try to minimize operations if there is only one group |
|
2477 |
if ( match.length === 1 ) { |
|
2478 | ||
2479 |
// Take a shortcut and set the context if the root selector is an ID |
|
2480 |
tokens = match[0] = match[0].slice( 0 ); |
|
2481 |
if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && |
|
2482 |
support.getById && context.nodeType === 9 && documentIsHTML && |
|
2483 |
Expr.relative[ tokens[1].type ] ) { |
|
2484 | ||
2485 |
context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; |
|
2486 |
if ( !context ) { |
|
2487 |
return results; |
|
2488 |
} |
|
2489 |
selector = selector.slice( tokens.shift().value.length ); |
|
2490 |
} |
|
2491 | ||
2492 |
// Fetch a seed set for right-to-left matching |
|
2493 |
i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; |
|
2494 |
while ( i-- ) { |
|
2495 |
token = tokens[i]; |
|
2496 | ||
2497 |
// Abort if we hit a combinator |
|
2498 |
if ( Expr.relative[ (type = token.type) ] ) { |
|
2499 |
break; |
|
2500 |
} |
|
2501 |
if ( (find = Expr.find[ type ]) ) { |
|
2502 |
// Search, expanding context for leading sibling combinators |
|
2503 |
if ( (seed = find( |
|
2504 |
token.matches[0].replace( runescape, funescape ), |
|
2505 |
rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context |
|
2506 |
)) ) { |
|
2507 | ||
2508 |
// If seed is empty or no tokens remain, we can return early |
|
2509 |
tokens.splice( i, 1 ); |
|
2510 |
selector = seed.length && toSelector( tokens ); |
|
2511 |
if ( !selector ) { |
|
2512 |
push.apply( results, seed ); |
|
2513 |
return results; |
|
2514 |
} |
|
2515 | ||
2516 |
break; |
|
2517 |
} |
|
2518 |
} |
|
2519 |
} |
|
2520 |
} |
|
2521 |
} |
|
2522 | ||
2523 |
// Compile and execute a filtering function |
|
2524 |
// Provide `match` to avoid retokenization if we modified the selector above |
|
2525 |
compile( selector, match )( |
|
2526 |
seed, |
|
2527 |
context, |
|
2528 |
!documentIsHTML, |
|
2529 |
results, |
|
2530 |
rsibling.test( selector ) && testContext( context.parentNode ) || context |
|
2531 |
); |
|
2532 |
return results; |
|
2533 |
} |
|
2534 | ||
2535 |
// One-time assignments |
|
2536 | ||
2537 |
// Sort stability |
|
2538 |
support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; |
|
2539 | ||
2540 |
// Support: Chrome<14 |
|
2541 |
// Always assume duplicates if they aren't passed to the comparison function |
|
2542 |
support.detectDuplicates = !!hasDuplicate; |
|
2543 | ||
2544 |
// Initialize against the default document |
|
2545 |
setDocument(); |
|
2546 | ||
2547 |
// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) |
|
2548 |
// Detached nodes confoundingly follow *each other* |
|
2549 |
support.sortDetached = assert(function( div1 ) { |
|
2550 |
// Should return 1, but returns 4 (following) |
|
2551 |
return div1.compareDocumentPosition( document.createElement("div") ) & 1; |
|
2552 |
}); |
|
2553 | ||
2554 |
// Support: IE<8 |
|
2555 |
// Prevent attribute/property "interpolation" |
|
2556 |
// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx |
|
2557 |
if ( !assert(function( div ) { |
|
2558 |
div.innerHTML = "<a href='#'></a>"; |
|
2559 |
return div.firstChild.getAttribute("href") === "#" ; |
|
2560 |
}) ) { |
|
2561 |
addHandle( "type|href|height|width", function( elem, name, isXML ) { |
|
2562 |
if ( !isXML ) { |
|
2563 |
return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); |
|
2564 |
} |
|
2565 |
}); |
|
2566 |
} |
|
2567 | ||
2568 |
// Support: IE<9 |
|
2569 |
// Use defaultValue in place of getAttribute("value") |
|
2570 |
if ( !support.attributes || !assert(function( div ) { |
|
2571 |
div.innerHTML = "<input/>"; |
|
2572 |
div.firstChild.setAttribute( "value", "" ); |
|
2573 |
return div.firstChild.getAttribute( "value" ) === ""; |
|
2574 |
}) ) { |
|
2575 |
addHandle( "value", function( elem, name, isXML ) { |
|
2576 |
if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { |
|
2577 |
return elem.defaultValue; |
|
2578 |
} |
|
2579 |
}); |
|
2580 |
} |
|
2581 | ||
2582 |
// Support: IE<9 |
|
2583 |
// Use getAttributeNode to fetch booleans when getAttribute lies |
|
2584 |
if ( !assert(function( div ) { |
|
2585 |
return div.getAttribute("disabled") == null; |
|
2586 |
}) ) { |
|
2587 |
addHandle( booleans, function( elem, name, isXML ) { |
|
2588 |
var val; |
|
2589 |
if ( !isXML ) { |
|
2590 |
return elem[ name ] === true ? name.toLowerCase() : |
|
2591 |
(val = elem.getAttributeNode( name )) && val.specified ? |
|
2592 |
val.value : |
|
2593 |
null; |
|
2594 |
} |
|
2595 |
}); |
|
2596 |
} |
|
2597 | ||
2598 |
return Sizzle; |
|
2599 | ||
2600 |
})( window ); |
|
2601 | ||
2602 | ||
2603 | ||
2604 |
jQuery.find = Sizzle; |
|
2605 |
jQuery.expr = Sizzle.selectors; |
|
2606 |
jQuery.expr[":"] = jQuery.expr.pseudos; |
|
2607 |
jQuery.unique = Sizzle.uniqueSort; |
|
2608 |
jQuery.text = Sizzle.getText; |
|
2609 |
jQuery.isXMLDoc = Sizzle.isXML; |
|
2610 |
jQuery.contains = Sizzle.contains; |
|
2611 | ||
2612 | ||
2613 | ||
2614 |
var rneedsContext = jQuery.expr.match.needsContext; |
|
2615 | ||
2616 |
var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); |
|
2617 | ||
2618 | ||
2619 | ||
2620 |
var risSimple = /^.[^:#\[\.,]*$/; |
|
2621 | ||
2622 |
// Implement the identical functionality for filter and not |
|
2623 |
function winnow( elements, qualifier, not ) { |
|
2624 |
if ( jQuery.isFunction( qualifier ) ) { |
|
2625 |
return jQuery.grep( elements, function( elem, i ) { |
|
2626 |
/* jshint -W018 */ |
|
2627 |
return !!qualifier.call( elem, i, elem ) !== not; |
|
2628 |
}); |
|
2629 | ||
2630 |
} |
|
2631 | ||
2632 |
if ( qualifier.nodeType ) { |
|
2633 |
return jQuery.grep( elements, function( elem ) { |
|
2634 |
return ( elem === qualifier ) !== not; |
|
2635 |
}); |
|
2636 | ||
2637 |
} |
|
2638 | ||
2639 |
if ( typeof qualifier === "string" ) { |
|
2640 |
if ( risSimple.test( qualifier ) ) { |
|
2641 |
return jQuery.filter( qualifier, elements, not ); |
|
2642 |
} |
|
2643 | ||
2644 |
qualifier = jQuery.filter( qualifier, elements ); |
|
2645 |
} |
|
2646 | ||
2647 |
return jQuery.grep( elements, function( elem ) { |
|
2648 |
return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; |
|
2649 |
}); |
|
2650 |
} |
|
2651 | ||
2652 |
jQuery.filter = function( expr, elems, not ) { |
|
2653 |
var elem = elems[ 0 ]; |
|
2654 | ||
2655 |
if ( not ) { |
|
2656 |
expr = ":not(" + expr + ")"; |
|
2657 |
} |
|
2658 | ||
2659 |
return elems.length === 1 && elem.nodeType === 1 ? |
|
2660 |
jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : |
|
2661 |
jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { |
|
2662 |
return elem.nodeType === 1; |
|
2663 |
})); |
|
2664 |
}; |
|
2665 | ||
2666 |
jQuery.fn.extend({ |
|
2667 |
find: function( selector ) { |
|
2668 |
var i, |
|
2669 |
ret = [], |
|
2670 |
self = this, |
|
2671 |
len = self.length; |
|
2672 | ||
2673 |
if ( typeof selector !== "string" ) { |
|
2674 |
return this.pushStack( jQuery( selector ).filter(function() { |
|
2675 |
for ( i = 0; i < len; i++ ) { |
|
2676 |
if ( jQuery.contains( self[ i ], this ) ) { |
|
2677 |
return true; |
|
2678 |
} |
|
2679 |
} |
|
2680 |
}) ); |
|
2681 |
} |
|
2682 | ||
2683 |
for ( i = 0; i < len; i++ ) { |
|
2684 |
jQuery.find( selector, self[ i ], ret ); |
|
2685 |
} |
|
2686 | ||
2687 |
// Needed because $( selector, context ) becomes $( context ).find( selector ) |
|
2688 |
ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); |
|
2689 |
ret.selector = this.selector ? this.selector + " " + selector : selector; |
|
2690 |
return ret; |
|
2691 |
}, |
|
2692 |
filter: function( selector ) { |
|
2693 |
return this.pushStack( winnow(this, selector || [], false) ); |
|
2694 |
}, |
|
2695 |
not: function( selector ) { |
|
2696 |
return this.pushStack( winnow(this, selector || [], true) ); |
|
2697 |
}, |
|
2698 |
is: function( selector ) { |
|
2699 |
return !!winnow( |
|
2700 |
this, |
|
2701 | ||
2702 |
// If this is a positional/relative selector, check membership in the returned set |
|
2703 |
// so $("p:first").is("p:last") won't return true for a doc with two "p". |
|
2704 |
typeof selector === "string" && rneedsContext.test( selector ) ? |
|
2705 |
jQuery( selector ) : |
|
2706 |
selector || [], |
|
2707 |
false |
|
2708 |
).length; |
|
2709 |
} |
|
2710 |
}); |
|
2711 | ||
2712 | ||
2713 |
// Initialize a jQuery object |
|
2714 | ||
2715 | ||
2716 |
// A central reference to the root jQuery(document) |
|
2717 |
var rootjQuery, |
|
2718 | ||
2719 |
// Use the correct document accordingly with window argument (sandbox) |
|
2720 |
document = window.document, |
|
2721 | ||
2722 |
// A simple way to check for HTML strings |
|
2723 |
// Prioritize #id over <tag> to avoid XSS via location.hash (#9521) |
|
2724 |
// Strict HTML recognition (#11290: must start with <) |
|
2725 |
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, |
|
2726 | ||
2727 |
init = jQuery.fn.init = function( selector, context ) { |
|
2728 |
var match, elem; |
|
2729 | ||
2730 |
// HANDLE: $(""), $(null), $(undefined), $(false) |
|
2731 |
if ( !selector ) { |
|
2732 |
return this; |
|
2733 |
} |
|
2734 | ||
2735 |
// Handle HTML strings |
|
2736 |
if ( typeof selector === "string" ) { |
|
2737 |
if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { |
|
2738 |
// Assume that strings that start and end with <> are HTML and skip the regex check |
|
2739 |
match = [ null, selector, null ]; |
|
2740 | ||
2741 |
} else { |
|
2742 |
match = rquickExpr.exec( selector ); |
|
2743 |
} |
|
2744 | ||
2745 |
// Match html or make sure no context is specified for #id |
|
2746 |
if ( match && (match[1] || !context) ) { |
|
2747 | ||
2748 |
// HANDLE: $(html) -> $(array) |
|
2749 |
if ( match[1] ) { |
|
2750 |
context = context instanceof jQuery ? context[0] : context; |
|
2751 | ||
2752 |
// scripts is true for back-compat |
|
2753 |
// Intentionally let the error be thrown if parseHTML is not present |
|
2754 |
jQuery.merge( this, jQuery.parseHTML( |
|
2755 |
match[1], |
|
2756 |
context && context.nodeType ? context.ownerDocument || context : document, |
|
2757 |
true |
|
2758 |
) ); |
|
2759 | ||
2760 |
// HANDLE: $(html, props) |
|
2761 |
if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { |
|
2762 |
for ( match in context ) { |
|
2763 |
// Properties of context are called as methods if possible |
|
2764 |
if ( jQuery.isFunction( this[ match ] ) ) { |
|
2765 |
this[ match ]( context[ match ] ); |
|
2766 | ||
2767 |
// ...and otherwise set as attributes |
|
2768 |
} else { |
|
2769 |
this.attr( match, context[ match ] ); |
|
2770 |
} |
|
2771 |
} |
|
2772 |
} |
|
2773 | ||
2774 |
return this; |
|
2775 | ||
2776 |
// HANDLE: $(#id) |
|
2777 |
} else { |
|
2778 |
elem = document.getElementById( match[2] ); |
|
2779 | ||
2780 |
// Check parentNode to catch when Blackberry 4.6 returns |
|
2781 |
// nodes that are no longer in the document #6963 |
|
2782 |
if ( elem && elem.parentNode ) { |
|
2783 |
// Handle the case where IE and Opera return items |
|
2784 |
// by name instead of ID |
|
2785 |
if ( elem.id !== match[2] ) { |
|
2786 |
return rootjQuery.find( selector ); |
|
2787 |
} |
|
2788 | ||
2789 |
// Otherwise, we inject the element directly into the jQuery object |
|
2790 |
this.length = 1; |
|
2791 |
this[0] = elem; |
|
2792 |
} |
|
2793 | ||
2794 |
this.context = document; |
|
2795 |
this.selector = selector; |
|
2796 |
return this; |
|
2797 |
} |
|
2798 | ||
2799 |
// HANDLE: $(expr, $(...)) |
|
2800 |
} else if ( !context || context.jquery ) { |
|
2801 |
return ( context || rootjQuery ).find( selector ); |
|
2802 | ||
2803 |
// HANDLE: $(expr, context) |
|
2804 |
// (which is just equivalent to: $(context).find(expr) |
|
2805 |
} else { |
|
2806 |
return this.constructor( context ).find( selector ); |
|
2807 |
} |
|
2808 | ||
2809 |
// HANDLE: $(DOMElement) |
|
2810 |
} else if ( selector.nodeType ) { |
|
2811 |
this.context = this[0] = selector; |
|
2812 |
this.length = 1; |
|
2813 |
return this; |
|
2814 | ||
2815 |
// HANDLE: $(function) |
|
2816 |
// Shortcut for document ready |
|
2817 |
} else if ( jQuery.isFunction( selector ) ) { |
|
2818 |
return typeof rootjQuery.ready !== "undefined" ? |
|
2819 |
rootjQuery.ready( selector ) : |
|
2820 |
// Execute immediately if ready is not present |
|
2821 |
selector( jQuery ); |
|
2822 |
} |
|
2823 | ||
2824 |
if ( selector.selector !== undefined ) { |
|
2825 |
this.selector = selector.selector; |
|
2826 |
this.context = selector.context; |
|
2827 |
} |
|
2828 | ||
2829 |
return jQuery.makeArray( selector, this ); |
|
2830 |
}; |
|
2831 | ||
2832 |
// Give the init function the jQuery prototype for later instantiation |
|
2833 |
init.prototype = jQuery.fn; |
|
2834 | ||
2835 |
// Initialize central reference |
|
2836 |
rootjQuery = jQuery( document ); |
|
2837 | ||
2838 | ||
2839 |
var rparentsprev = /^(?:parents|prev(?:Until|All))/, |
|
2840 |
// methods guaranteed to produce a unique set when starting from a unique set |
|
2841 |
guaranteedUnique = { |
|
2842 |
children: true, |
|
2843 |
contents: true, |
|
2844 |
next: true, |
|
2845 |
prev: true |
|
2846 |
}; |
|
2847 | ||
2848 |
jQuery.extend({ |
|
2849 |
dir: function( elem, dir, until ) { |
|
2850 |
var matched = [], |
|
2851 |
cur = elem[ dir ]; |
|
2852 | ||
2853 |
while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { |
|
2854 |
if ( cur.nodeType === 1 ) { |
|
2855 |
matched.push( cur ); |
|
2856 |
} |
|
2857 |
cur = cur[dir]; |
|
2858 |
} |
|
2859 |
return matched; |
|
2860 |
}, |
|
2861 | ||
2862 |
sibling: function( n, elem ) { |
|
2863 |
var r = []; |
|
2864 | ||
2865 |
for ( ; n; n = n.nextSibling ) { |
|
2866 |
if ( n.nodeType === 1 && n !== elem ) { |
|
2867 |
r.push( n ); |
|
2868 |
} |
|
2869 |
} |
|
2870 | ||
2871 |
return r; |
|
2872 |
} |
|
2873 |
}); |
|
2874 | ||
2875 |
jQuery.fn.extend({ |
|
2876 |
has: function( target ) { |
|
2877 |
var i, |
|
2878 |
targets = jQuery( target, this ), |
|
2879 |
len = targets.length; |
|
2880 | ||
2881 |
return this.filter(function() { |
|
2882 |
for ( i = 0; i < len; i++ ) { |
|
2883 |
if ( jQuery.contains( this, targets[i] ) ) { |
|
2884 |
return true; |
|
2885 |
} |
|
2886 |
} |
|
2887 |
}); |
|
2888 |
}, |
|
2889 | ||
2890 |
closest: function( selectors, context ) { |
|
2891 |
var cur, |
|
2892 |
i = 0, |
|
2893 |
l = this.length, |
|
2894 |
matched = [], |
|
2895 |
pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? |
|
2896 |
jQuery( selectors, context || this.context ) : |
|
2897 |
0; |
|
2898 | ||
2899 |
for ( ; i < l; i++ ) { |
|
2900 |
for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { |
|
2901 |
// Always skip document fragments |
|
2902 |
if ( cur.nodeType < 11 && (pos ? |
|
2903 |
pos.index(cur) > -1 : |
|
2904 | ||
2905 |
// Don't pass non-elements to Sizzle |
|
2906 |
cur.nodeType === 1 && |
|
2907 |
jQuery.find.matchesSelector(cur, selectors)) ) { |
|
2908 | ||
2909 |
matched.push( cur ); |
|
2910 |
break; |
|
2911 |
} |
|
2912 |
} |
|
2913 |
} |
|
2914 | ||
2915 |
return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); |
|
2916 |
}, |
|
2917 | ||
2918 |
// Determine the position of an element within |
|
2919 |
// the matched set of elements |
|
2920 |
index: function( elem ) { |
|
2921 | ||
2922 |
// No argument, return index in parent |
|
2923 |
if ( !elem ) { |
|
2924 |
return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; |
|
2925 |
} |
|
2926 | ||
2927 |
// index in selector |
|
2928 |
if ( typeof elem === "string" ) { |
|
2929 |
return jQuery.inArray( this[0], jQuery( elem ) ); |
|
2930 |
} |
|
2931 | ||
2932 |
// Locate the position of the desired element |
|
2933 |
return jQuery.inArray( |
|
2934 |
// If it receives a jQuery object, the first element is used |
|
2935 |
elem.jquery ? elem[0] : elem, this ); |
|
2936 |
}, |
|
2937 | ||
2938 |
add: function( selector, context ) { |
|
2939 |
return this.pushStack( |
|
2940 |
jQuery.unique( |
|
2941 |
jQuery.merge( this.get(), jQuery( selector, context ) ) |
|
2942 |
) |
|
2943 |
); |
|
2944 |
}, |
|
2945 | ||
2946 |
addBack: function( selector ) { |
|
2947 |
return this.add( selector == null ? |
|
2948 |
this.prevObject : this.prevObject.filter(selector) |
|
2949 |
); |
|
2950 |
} |
|
2951 |
}); |
|
2952 | ||
2953 |
function sibling( cur, dir ) { |
|
2954 |
do { |
|
2955 |
cur = cur[ dir ]; |
|
2956 |
} while ( cur && cur.nodeType !== 1 ); |
|
2957 | ||
2958 |
return cur; |
|
2959 |
} |
|
2960 | ||
2961 |
jQuery.each({ |
|
2962 |
parent: function( elem ) { |
|
2963 |
var parent = elem.parentNode; |
|
2964 |
return parent && parent.nodeType !== 11 ? parent : null; |
|
2965 |
}, |
|
2966 |
parents: function( elem ) { |
|
2967 |
return jQuery.dir( elem, "parentNode" ); |
|
2968 |
}, |
|
2969 |
parentsUntil: function( elem, i, until ) { |
|
2970 |
return jQuery.dir( elem, "parentNode", until ); |
|
2971 |
}, |
|
2972 |
next: function( elem ) { |
|
2973 |
return sibling( elem, "nextSibling" ); |
|
2974 |
}, |
|
2975 |
prev: function( elem ) { |
|
2976 |
return sibling( elem, "previousSibling" ); |
|
2977 |
}, |
|
2978 |
nextAll: function( elem ) { |
|
2979 |
return jQuery.dir( elem, "nextSibling" ); |
|
2980 |
}, |
|
2981 |
prevAll: function( elem ) { |
|
2982 |
return jQuery.dir( elem, "previousSibling" ); |
|
2983 |
}, |
|
2984 |
nextUntil: function( elem, i, until ) { |
|
2985 |
return jQuery.dir( elem, "nextSibling", until ); |
|
2986 |
}, |
|
2987 |
prevUntil: function( elem, i, until ) { |
|
2988 |
return jQuery.dir( elem, "previousSibling", until ); |
|
2989 |
}, |
|
2990 |
siblings: function( elem ) { |
|
2991 |
return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); |
|
2992 |
}, |
|
2993 |
children: function( elem ) { |
|
2994 |
return jQuery.sibling( elem.firstChild ); |
|
2995 |
}, |
|
2996 |
contents: function( elem ) { |
|
2997 |
return jQuery.nodeName( elem, "iframe" ) ? |
|
2998 |
elem.contentDocument || elem.contentWindow.document : |
|
2999 |
jQuery.merge( [], elem.childNodes ); |
|
3000 |
} |
|
3001 |
}, function( name, fn ) { |
|
3002 |
jQuery.fn[ name ] = function( until, selector ) { |
|
3003 |
var ret = jQuery.map( this, fn, until ); |
|
3004 | ||
3005 |
if ( name.slice( -5 ) !== "Until" ) { |
|
3006 |
selector = until; |
|
3007 |
} |
|
3008 | ||
3009 |
if ( selector && typeof selector === "string" ) { |
|
3010 |
ret = jQuery.filter( selector, ret ); |
|
3011 |
} |
|
3012 | ||
3013 |
if ( this.length > 1 ) { |
|
3014 |
// Remove duplicates |
|
3015 |
if ( !guaranteedUnique[ name ] ) { |
|
3016 |
ret = jQuery.unique( ret ); |
|
3017 |
} |
|
3018 | ||
3019 |
// Reverse order for parents* and prev-derivatives |
|
3020 |
if ( rparentsprev.test( name ) ) { |
|
3021 |
ret = ret.reverse(); |
|
3022 |
} |
|
3023 |
} |
|
3024 | ||
3025 |
return this.pushStack( ret ); |
|
3026 |
}; |
|
3027 |
}); |
|
3028 |
var rnotwhite = (/\S+/g); |
|
3029 | ||
3030 | ||
3031 | ||
3032 |
// String to Object options format cache |
|
3033 |
var optionsCache = {}; |
|
3034 | ||
3035 |
// Convert String-formatted options into Object-formatted ones and store in cache |
|
3036 |
function createOptions( options ) { |
|
3037 |
var object = optionsCache[ options ] = {}; |
|
3038 |
jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { |
|
3039 |
object[ flag ] = true; |
|
3040 |
}); |
|
3041 |
return object; |
|
3042 |
} |
|
3043 | ||
3044 |
/* |
|
3045 |
* Create a callback list using the following parameters: |
|
3046 |
* |
|
3047 |
* options: an optional list of space-separated options that will change how |
|
3048 |
* the callback list behaves or a more traditional option object |
|
3049 |
* |
|
3050 |
* By default a callback list will act like an event callback list and can be |
|
3051 |
* "fired" multiple times. |
|
3052 |
* |
|
3053 |
* Possible options: |
|
3054 |
* |
|
3055 |
* once: will ensure the callback list can only be fired once (like a Deferred) |
|
3056 |
* |
|
3057 |
* memory: will keep track of previous values and will call any callback added |
|
3058 |
* after the list has been fired right away with the latest "memorized" |
|
3059 |
* values (like a Deferred) |
|
3060 |
* |
|
3061 |
* unique: will ensure a callback can only be added once (no duplicate in the list) |
|
3062 |
* |
|
3063 |
* stopOnFalse: interrupt callings when a callback returns false |
|
3064 |
* |
|
3065 |
*/ |
|
3066 |
jQuery.Callbacks = function( options ) { |
|
3067 | ||
3068 |
// Convert options from String-formatted to Object-formatted if needed |
|
3069 |
// (we check in cache first) |
|
3070 |
options = typeof options === "string" ? |
|
3071 |
( optionsCache[ options ] || createOptions( options ) ) : |
|
3072 |
jQuery.extend( {}, options ); |
|
3073 | ||
3074 |
var // Flag to know if list is currently firing |
|
3075 |
firing, |
|
3076 |
// Last fire value (for non-forgettable lists) |
|
3077 |
memory, |
|
3078 |
// Flag to know if list was already fired |
|
3079 |
fired, |
|
3080 |
// End of the loop when firing |
|
3081 |
firingLength, |
|
3082 |
// Index of currently firing callback (modified by remove if needed) |
|
3083 |
firingIndex, |
|
3084 |
// First callback to fire (used internally by add and fireWith) |
|
3085 |
firingStart, |
|
3086 |
// Actual callback list |
|
3087 |
list = [], |
|
3088 |
// Stack of fire calls for repeatable lists |
|
3089 |
stack = !options.once && [], |
|
3090 |
// Fire callbacks |
|
3091 |
fire = function( data ) { |
|
3092 |
memory = options.memory && data; |
|
3093 |
fired = true; |
|
3094 |
firingIndex = firingStart || 0; |
|
3095 |
firingStart = 0; |
|
3096 |
firingLength = list.length; |
|
3097 |
firing = true; |
|
3098 |
for ( ; list && firingIndex < firingLength; firingIndex++ ) { |
|
3099 |
if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { |
|
3100 |
memory = false; // To prevent further calls using add |
|
3101 |
break; |
|
3102 |
} |
|
3103 |
} |
|
3104 |
firing = false; |
|
3105 |
if ( list ) { |
|
3106 |
if ( stack ) { |
|
3107 |
if ( stack.length ) { |
|
3108 |
fire( stack.shift() ); |
|
3109 |
} |
|
3110 |
} else if ( memory ) { |
|
3111 |
list = []; |
|
3112 |
} else { |
|
3113 |
self.disable(); |
|
3114 |
} |
|
3115 |
} |
|
3116 |
}, |
|
3117 |
// Actual Callbacks object |
|
3118 |
self = { |
|
3119 |
// Add a callback or a collection of callbacks to the list |
|
3120 |
add: function() { |
|
3121 |
if ( list ) { |
|
3122 |
// First, we save the current length |
|
3123 |
var start = list.length; |
|
3124 |
(function add( args ) { |
|
3125 |
jQuery.each( args, function( _, arg ) { |
|
3126 |
var type = jQuery.type( arg ); |
|
3127 |
if ( type === "function" ) { |
|
3128 |
if ( !options.unique || !self.has( arg ) ) { |
|
3129 |
list.push( arg ); |
|
3130 |
} |
|
3131 |
} else if ( arg && arg.length && type !== "string" ) { |
|
3132 |
// Inspect recursively |
|
3133 |
add( arg ); |
|
3134 |
} |
|
3135 |
}); |
|
3136 |
})( arguments ); |
|
3137 |
// Do we need to add the callbacks to the |
|
3138 |
// current firing batch? |
|
3139 |
if ( firing ) { |
|
3140 |
firingLength = list.length; |
|
3141 |
// With memory, if we're not firing then |
|
3142 |
// we should call right away |
|
3143 |
} else if ( memory ) { |
|
3144 |
firingStart = start; |
|
3145 |
fire( memory ); |
|
3146 |
} |
|
3147 |
} |
|
3148 |
return this; |
|
3149 |
}, |
|
3150 |
// Remove a callback from the list |
|
3151 |
remove: function() { |
|
3152 |
if ( list ) { |
|
3153 |
jQuery.each( arguments, function( _, arg ) { |
|
3154 |
var index; |
|
3155 |
while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { |
|
3156 |
list.splice( index, 1 ); |
|
3157 |
// Handle firing indexes |
|
3158 |
if ( firing ) { |
|
3159 |
if ( index <= firingLength ) { |
|
3160 |
firingLength--; |
|
3161 |
} |
|
3162 |
if ( index <= firingIndex ) { |
|
3163 |
firingIndex--; |
|
3164 |
} |
|
3165 |
} |
|
3166 |
} |
|
3167 |
}); |
|
3168 |
} |
|
3169 |
return this; |
|
3170 |
}, |
|
3171 |
// Check if a given callback is in the list. |
|
3172 |
// If no argument is given, return whether or not list has callbacks attached. |
|
3173 |
has: function( fn ) { |
|
3174 |
return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); |
|
3175 |
}, |
|
3176 |
// Remove all callbacks from the list |
|
3177 |
empty: function() { |
|
3178 |
list = []; |
|
3179 |
firingLength = 0; |
|
3180 |
return this; |
|
3181 |
}, |
|
3182 |
// Have the list do nothing anymore |
|
3183 |
disable: function() { |
|
3184 |
list = stack = memory = undefined; |
|
3185 |
return this; |
|
3186 |
}, |
|
3187 |
// Is it disabled? |
|
3188 |
disabled: function() { |
|
3189 |
return !list; |
|
3190 |
}, |
|
3191 |
// Lock the list in its current state |
|
3192 |
lock: function() { |
|
3193 |
stack = undefined; |
|
3194 |
if ( !memory ) { |
|
3195 |
self.disable(); |
|
3196 |
} |
|
3197 |
return this; |
|
3198 |
}, |
|
3199 |
// Is it locked? |
|
3200 |
locked: function() { |
|
3201 |
return !stack; |
|
3202 |
}, |
|
3203 |
// Call all callbacks with the given context and arguments |
|
3204 |
fireWith: function( context, args ) { |
|
3205 |
if ( list && ( !fired || stack ) ) { |
|
3206 |
args = args || []; |
|
3207 |
args = [ context, args.slice ? args.slice() : args ]; |
|
3208 |
if ( firing ) { |
|
3209 |
stack.push( args ); |
|
3210 |
} else { |
|
3211 |
fire( args ); |
|
3212 |
} |
|
3213 |
} |
|
3214 |
return this; |
|
3215 |
}, |
|
3216 |
// Call all the callbacks with the given arguments |
|
3217 |
fire: function() { |
|
3218 |
self.fireWith( this, arguments ); |
|
3219 |
return this; |
|
3220 |
}, |
|
3221 |
// To know if the callbacks have already been called at least once |
|
3222 |
fired: function() { |
|
3223 |
return !!fired; |
|
3224 |
} |
|
3225 |
}; |
|
3226 | ||
3227 |
return self; |
|
3228 |
}; |
|
3229 | ||
3230 | ||
3231 |
jQuery.extend({ |
|
3232 | ||
3233 |
Deferred: function( func ) { |
|
3234 |
var tuples = [ |
|
3235 |
// action, add listener, listener list, final state |
|
3236 |
[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], |
|
3237 |
[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], |
|
3238 |
[ "notify", "progress", jQuery.Callbacks("memory") ] |
|
3239 |
], |
|
3240 |
state = "pending", |
|
3241 |
promise = { |
|
3242 |
state: function() { |
|
3243 |
return state; |
|
3244 |
}, |
|
3245 |
always: function() { |
|
3246 |
deferred.done( arguments ).fail( arguments ); |
|
3247 |
return this; |
|
3248 |
}, |
|
3249 |
then: function( /* fnDone, fnFail, fnProgress */ ) { |
|
3250 |
var fns = arguments; |
|
3251 |
return jQuery.Deferred(function( newDefer ) { |
|
3252 |
jQuery.each( tuples, function( i, tuple ) { |
|
3253 |
var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; |
|
3254 |
// deferred[ done | fail | progress ] for forwarding actions to newDefer |
|
3255 |
deferred[ tuple[1] ](function() { |
|
3256 |
var returned = fn && fn.apply( this, arguments ); |
|
3257 |
if ( returned && jQuery.isFunction( returned.promise ) ) { |
|
3258 |
returned.promise() |
|
3259 |
.done( newDefer.resolve ) |
|
3260 |
.fail( newDefer.reject ) |
|
3261 |
.progress( newDefer.notify ); |
|
3262 |
} else { |
|
3263 |
newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); |
|
3264 |
} |
|
3265 |
}); |
|
3266 |
}); |
|
3267 |
fns = null; |
|
3268 |
}).promise(); |
|
3269 |
}, |
|
3270 |
// Get a promise for this deferred |
|
3271 |
// If obj is provided, the promise aspect is added to the object |
|
3272 |
promise: function( obj ) { |
|
3273 |
return obj != null ? jQuery.extend( obj, promise ) : promise; |
|
3274 |
} |
|
3275 |
}, |
|
3276 |
deferred = {}; |
|
3277 | ||
3278 |
// Keep pipe for back-compat |
|
3279 |
promise.pipe = promise.then; |
|
3280 | ||
3281 |
// Add list-specific methods |
|
3282 |
jQuery.each( tuples, function( i, tuple ) { |
|
3283 |
var list = tuple[ 2 ], |
|
3284 |
stateString = tuple[ 3 ]; |
|
3285 | ||
3286 |
// promise[ done | fail | progress ] = list.add |
|
3287 |
promise[ tuple[1] ] = list.add; |
|
3288 | ||
3289 |
// Handle state |
|
3290 |
if ( stateString ) { |
|
3291 |
list.add(function() { |
|
3292 |
// state = [ resolved | rejected ] |
|
3293 |
state = stateString; |
|
3294 | ||
3295 |
// [ reject_list | resolve_list ].disable; progress_list.lock |
|
3296 |
}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); |
|
3297 |
} |
|
3298 | ||
3299 |
// deferred[ resolve | reject | notify ] |
|
3300 |
deferred[ tuple[0] ] = function() { |
|
3301 |
deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); |
|
3302 |
return this; |
|
3303 |
}; |
|
3304 |
deferred[ tuple[0] + "With" ] = list.fireWith; |
|
3305 |
}); |
|
3306 | ||
3307 |
// Make the deferred a promise |
|
3308 |
promise.promise( deferred ); |
|
3309 | ||
3310 |
// Call given func if any |
|
3311 |
if ( func ) { |
|
3312 |
func.call( deferred, deferred ); |
|
3313 |
} |
|
3314 | ||
3315 |
// All done! |
|
3316 |
return deferred; |
|
3317 |
}, |
|
3318 | ||
3319 |
// Deferred helper |
|
3320 |
when: function( subordinate /* , ..., subordinateN */ ) { |
|
3321 |
var i = 0, |
|
3322 |
resolveValues = slice.call( arguments ), |
|
3323 |
length = resolveValues.length, |
|
3324 | ||
3325 |
// the count of uncompleted subordinates |
|
3326 |
remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, |
|
3327 | ||
3328 |
// the master Deferred. If resolveValues consist of only a single Deferred, just use that. |
|
3329 |
deferred = remaining === 1 ? subordinate : jQuery.Deferred(), |
|
3330 | ||
3331 |
// Update function for both resolve and progress values |
|
3332 |
updateFunc = function( i, contexts, values ) { |
|
3333 |
return function( value ) { |
|
3334 |
contexts[ i ] = this; |
|
3335 |
values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; |
|
3336 |
if ( values === progressValues ) { |
|
3337 |
deferred.notifyWith( contexts, values ); |
|
3338 | ||
3339 |
} else if ( !(--remaining) ) { |
|
3340 |
deferred.resolveWith( contexts, values ); |
|
3341 |
} |
|
3342 |
}; |
|
3343 |
}, |
|
3344 | ||
3345 |
progressValues, progressContexts, resolveContexts; |
|
3346 | ||
3347 |
// add listeners to Deferred subordinates; treat others as resolved |
|
3348 |
if ( length > 1 ) { |
|
3349 |
progressValues = new Array( length ); |
|
3350 |
progressContexts = new Array( length ); |
|
3351 |
resolveContexts = new Array( length ); |
|
3352 |
for ( ; i < length; i++ ) { |
|
3353 |
if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { |
|
3354 |
resolveValues[ i ].promise() |
|
3355 |
.done( updateFunc( i, resolveContexts, resolveValues ) ) |
|
3356 |
.fail( deferred.reject ) |
|
3357 |
.progress( updateFunc( i, progressContexts, progressValues ) ); |
|
3358 |
} else { |
|
3359 |
--remaining; |
|
3360 |
} |
|
3361 |
} |
|
3362 |
} |
|
3363 | ||
3364 |
// if we're not waiting on anything, resolve the master |
|
3365 |
if ( !remaining ) { |
|
3366 |
deferred.resolveWith( resolveContexts, resolveValues ); |
|
3367 |
} |
|
3368 | ||
3369 |
return deferred.promise(); |
|
3370 |
} |
|
3371 |
}); |
|
3372 | ||
3373 | ||
3374 |
// The deferred used on DOM ready |
|
3375 |
var readyList; |
|
3376 | ||
3377 |
jQuery.fn.ready = function( fn ) { |
|
3378 |
// Add the callback |
|
3379 |
jQuery.ready.promise().done( fn ); |
|
3380 | ||
3381 |
return this; |
|
3382 |
}; |
|
3383 | ||
3384 |
jQuery.extend({ |
|
3385 |
// Is the DOM ready to be used? Set to true once it occurs. |
|
3386 |
isReady: false, |
|
3387 | ||
3388 |
// A counter to track how many items to wait for before |
|
3389 |
// the ready event fires. See #6781 |
|
3390 |
readyWait: 1, |
|
3391 | ||
3392 |
// Hold (or release) the ready event |
|
3393 |
holdReady: function( hold ) { |
|
3394 |
if ( hold ) { |
|
3395 |
jQuery.readyWait++; |
|
3396 |
} else { |
|
3397 |
jQuery.ready( true ); |
|
3398 |
} |
|
3399 |
}, |
|
3400 | ||
3401 |
// Handle when the DOM is ready |
|
3402 |
ready: function( wait ) { |
|
3403 | ||
3404 |
// Abort if there are pending holds or we're already ready |
|
3405 |
if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { |
|
3406 |
return; |
|
3407 |
} |
|
3408 | ||
3409 |
// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). |
|
3410 |
if ( !document.body ) { |
|
3411 |
return setTimeout( jQuery.ready ); |
|
3412 |
} |
|
3413 | ||
3414 |
// Remember that the DOM is ready |
|
3415 |
jQuery.isReady = true; |
|
3416 | ||
3417 |
// If a normal DOM Ready event fired, decrement, and wait if need be |
|
3418 |
if ( wait !== true && --jQuery.readyWait > 0 ) { |
|
3419 |
return; |
|
3420 |
} |
|
3421 | ||
3422 |
// If there are functions bound, to execute |
|
3423 |
readyList.resolveWith( document, [ jQuery ] ); |
|
3424 | ||
3425 |
// Trigger any bound ready events |
|
3426 |
if ( jQuery.fn.trigger ) { |
|
3427 |
jQuery( document ).trigger("ready").off("ready"); |
|
3428 |
} |
|
3429 |
} |
|
3430 |
}); |
|
3431 | ||
3432 |
/** |
|
3433 |
* Clean-up method for dom ready events |
|
3434 |
*/ |
|
3435 |
function detach() { |
|
3436 |
if ( document.addEventListener ) { |
|
3437 |
document.removeEventListener( "DOMContentLoaded", completed, false ); |
|
3438 |
window.removeEventListener( "load", completed, false ); |
|
3439 | ||
3440 |
} else { |
|
3441 |
document.detachEvent( "onreadystatechange", completed ); |
|
3442 |
window.detachEvent( "onload", completed ); |
|
3443 |
} |
|
3444 |
} |
|
3445 | ||
3446 |
/** |
|
3447 |
* The ready event handler and self cleanup method |
|
3448 |
*/ |
|
3449 |
function completed() { |
|
3450 |
// readyState === "complete" is good enough for us to call the dom ready in oldIE |
|
3451 |
if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { |
|
3452 |
detach(); |
|
3453 |
jQuery.ready(); |
|
3454 |
} |
|
3455 |
} |
|
3456 | ||
3457 |
jQuery.ready.promise = function( obj ) { |
|
3458 |
if ( !readyList ) { |
|
3459 | ||
3460 |
readyList = jQuery.Deferred(); |
|
3461 | ||
3462 |
// Catch cases where $(document).ready() is called after the browser event has already occurred. |
|
3463 |
// we once tried to use readyState "interactive" here, but it caused issues like the one |
|
3464 |
// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 |
|
3465 |
if ( document.readyState === "complete" ) { |
|
3466 |
// Handle it asynchronously to allow scripts the opportunity to delay ready |
|
3467 |
setTimeout( jQuery.ready ); |
|
3468 | ||
3469 |
// Standards-based browsers support DOMContentLoaded |
|
3470 |
} else if ( document.addEventListener ) { |
|
3471 |
// Use the handy event callback |
|
3472 |
document.addEventListener( "DOMContentLoaded", completed, false ); |
|
3473 | ||
3474 |
// A fallback to window.onload, that will always work |
|
3475 |
window.addEventListener( "load", completed, false ); |
|
3476 | ||
3477 |
// If IE event model is used |
|
3478 |
} else { |
|
3479 |
// Ensure firing before onload, maybe late but safe also for iframes |
|
3480 |
document.attachEvent( "onreadystatechange", completed ); |
|
3481 | ||
3482 |
// A fallback to window.onload, that will always work |
|
3483 |
window.attachEvent( "onload", completed ); |
|
3484 | ||
3485 |
// If IE and not a frame |
|
3486 |
// continually check to see if the document is ready |
|
3487 |
var top = false; |
|
3488 | ||
3489 |
try { |
|
3490 |
top = window.frameElement == null && document.documentElement; |
|
3491 |
} catch(e) {} |
|
3492 | ||
3493 |
if ( top && top.doScroll ) { |
|
3494 |
(function doScrollCheck() { |
|
3495 |
if ( !jQuery.isReady ) { |
|
3496 | ||
3497 |
try { |
|
3498 |
// Use the trick by Diego Perini |
|
3499 |
// http://javascript.nwbox.com/IEContentLoaded/ |
|
3500 |
top.doScroll("left"); |
|
3501 |
} catch(e) { |
|
3502 |
return setTimeout( doScrollCheck, 50 ); |
|
3503 |
} |
|
3504 | ||
3505 |
// detach all dom ready events |
|
3506 |
detach(); |
|
3507 | ||
3508 |
// and execute any waiting functions |
|
3509 |
jQuery.ready(); |
|
3510 |
} |
|
3511 |
})(); |
|
3512 |
} |
|
3513 |
} |
|
3514 |
} |
|
3515 |
return readyList.promise( obj ); |
|
3516 |
}; |
|
3517 | ||
3518 | ||
3519 |
var strundefined = typeof undefined; |
|
3520 | ||
3521 | ||
3522 | ||
3523 |
// Support: IE<9 |
|
3524 |
// Iteration over object's inherited properties before its own |
|
3525 |
var i; |
|
3526 |
for ( i in jQuery( support ) ) { |
|
3527 |
break; |
|
3528 |
} |
|
3529 |
support.ownLast = i !== "0"; |
|
3530 | ||
3531 |
// Note: most support tests are defined in their respective modules. |
|
3532 |
// false until the test is run |
|
3533 |
support.inlineBlockNeedsLayout = false; |
|
3534 | ||
3535 |
jQuery(function() { |
|
3536 |
// We need to execute this one support test ASAP because we need to know |
|
3537 |
// if body.style.zoom needs to be set. |
|
3538 | ||
3539 |
var container, div, |
|
3540 |
body = document.getElementsByTagName("body")[0]; |
|
3541 | ||
3542 |
if ( !body ) { |
|
3543 |
// Return for frameset docs that don't have a body |
|
3544 |
return; |
|
3545 |
} |
|
3546 | ||
3547 |
// Setup |
|
3548 |
container = document.createElement( "div" ); |
|
3549 |
container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; |
|
3550 | ||
3551 |
div = document.createElement( "div" ); |
|
3552 |
body.appendChild( container ).appendChild( div ); |
|
3553 | ||
3554 |
if ( typeof div.style.zoom !== strundefined ) { |
|
3555 |
// Support: IE<8 |
|
3556 |
// Check if natively block-level elements act like inline-block |
|
3557 |
// elements when setting their display to 'inline' and giving |
|
3558 |
// them layout |
|
3559 |
div.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1"; |
|
3560 | ||
3561 |
if ( (support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 )) ) { |
|
3562 |
// Prevent IE 6 from affecting layout for positioned elements #11048 |
|
3563 |
// Prevent IE from shrinking the body in IE 7 mode #12869 |
|
3564 |
// Support: IE<8 |
|
3565 |
body.style.zoom = 1; |
|
3566 |
} |
|
3567 |
} |
|
3568 | ||
3569 |
body.removeChild( container ); |
|
3570 | ||
3571 |
// Null elements to avoid leaks in IE |
|
3572 |
container = div = null; |
|
3573 |
}); |
|
3574 | ||
3575 | ||
3576 | ||
3577 | ||
3578 |
(function() { |
|
3579 |
var div = document.createElement( "div" ); |
|
3580 | ||
3581 |
// Execute the test only if not already executed in another module. |
|
3582 |
if (support.deleteExpando == null) { |
|
3583 |
// Support: IE<9 |
|
3584 |
support.deleteExpando = true; |
|
3585 |
try { |
|
3586 |
delete div.test; |
|
3587 |
} catch( e ) { |
|
3588 |
support.deleteExpando = false; |
|
3589 |
} |
|
3590 |
} |
|
3591 | ||
3592 |
// Null elements to avoid leaks in IE. |
|
3593 |
div = null; |
|
3594 |
})(); |
|
3595 | ||
3596 | ||
3597 |
/** |
|
3598 |
* Determines whether an object can have data |
|
3599 |
*/ |
|
3600 |
jQuery.acceptData = function( elem ) { |
|
3601 |
var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ], |
|
3602 |
nodeType = +elem.nodeType || 1; |
|
3603 | ||
3604 |
// Do not set data on non-element DOM nodes because it will not be cleared (#8335). |
|
3605 |
return nodeType !== 1 && nodeType !== 9 ? |
|
3606 |
false : |
|
3607 | ||
3608 |
// Nodes accept data unless otherwise specified; rejection can be conditional |
|
3609 |
!noData || noData !== true && elem.getAttribute("classid") === noData; |
|
3610 |
}; |
|
3611 | ||
3612 | ||
3613 |
var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, |
|
3614 |
rmultiDash = /([A-Z])/g; |
|
3615 | ||
3616 |
function dataAttr( elem, key, data ) { |
|
3617 |
// If nothing was found internally, try to fetch any |
|
3618 |
// data from the HTML5 data-* attribute |
|
3619 |
if ( data === undefined && elem.nodeType === 1 ) { |
|
3620 | ||
3621 |
var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); |
|
3622 | ||
3623 |
data = elem.getAttribute( name ); |
|
3624 | ||
3625 |
if ( typeof data === "string" ) { |
|
3626 |
try { |
|
3627 |
data = data === "true" ? true : |
|
3628 |
data === "false" ? false : |
|
3629 |
data === "null" ? null : |
|
3630 |
// Only convert to a number if it doesn't change the string |
|
3631 |
+data + "" === data ? +data : |
|
3632 |
rbrace.test( data ) ? jQuery.parseJSON( data ) : |
|
3633 |
data; |
|
3634 |
} catch( e ) {} |
|
3635 | ||
3636 |
// Make sure we set the data so it isn't changed later |
|
3637 |
jQuery.data( elem, key, data ); |
|
3638 | ||
3639 |
} else { |
|
3640 |
data = undefined; |
|
3641 |
} |
|
3642 |
} |
|
3643 | ||
3644 |
return data; |
|
3645 |
} |
|
3646 | ||
3647 |
// checks a cache object for emptiness |
|
3648 |
function isEmptyDataObject( obj ) { |
|
3649 |
var name; |
|
3650 |
for ( name in obj ) { |
|
3651 | ||
3652 |
// if the public data object is empty, the private is still empty |
|
3653 |
if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { |
|
3654 |
continue; |
|
3655 |
} |
|
3656 |
if ( name !== "toJSON" ) { |
|
3657 |
return false; |
|
3658 |
} |
|
3659 |
} |
|
3660 | ||
3661 |
return true; |
|
3662 |
} |
|
3663 | ||
3664 |
function internalData( elem, name, data, pvt /* Internal Use Only */ ) { |
|
3665 |
if ( !jQuery.acceptData( elem ) ) { |
|
3666 |
return; |
|
3667 |
} |
|
3668 | ||
3669 |
var ret, thisCache, |
|
3670 |
internalKey = jQuery.expando, |
|
3671 | ||
3672 |
// We have to handle DOM nodes and JS objects differently because IE6-7 |
|
3673 |
// can't GC object references properly across the DOM-JS boundary |
|
3674 |
isNode = elem.nodeType, |
|
3675 | ||
3676 |
// Only DOM nodes need the global jQuery cache; JS object data is |
|
3677 |
// attached directly to the object so GC can occur automatically |
|
3678 |
cache = isNode ? jQuery.cache : elem, |
|
3679 | ||
3680 |
// Only defining an ID for JS objects if its cache already exists allows |
|
3681 |
// the code to shortcut on the same path as a DOM node with no cache |
|
3682 |
id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; |
|
3683 | ||
3684 |
// Avoid doing any more work than we need to when trying to get data on an |
|
3685 |
// object that has no data at all |
|
3686 |
if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { |
|
3687 |
return; |
|
3688 |
} |
|
3689 | ||
3690 |
if ( !id ) { |
|
3691 |
// Only DOM nodes need a new unique ID for each element since their data |
|
3692 |
// ends up in the global cache |
|
3693 |
if ( isNode ) { |
|
3694 |
id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; |
|
3695 |
} else { |
|
3696 |
id = internalKey; |
|
3697 |
} |
|
3698 |
} |
|
3699 | ||
3700 |
if ( !cache[ id ] ) { |
|
3701 |
// Avoid exposing jQuery metadata on plain JS objects when the object |
|
3702 |
// is serialized using JSON.stringify |
|
3703 |
cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; |
|
3704 |
} |
|
3705 | ||
3706 |
// An object can be passed to jQuery.data instead of a key/value pair; this gets |
|
3707 |
// shallow copied over onto the existing cache |
|
3708 |
if ( typeof name === "object" || typeof name === "function" ) { |
|
3709 |
if ( pvt ) { |
|
3710 |
cache[ id ] = jQuery.extend( cache[ id ], name ); |
|
3711 |
} else { |
|
3712 |
cache[ id ].data = jQuery.extend( cache[ id ].data, name ); |
|
3713 |
} |
|
3714 |
} |
|
3715 | ||
3716 |
thisCache = cache[ id ]; |
|
3717 | ||
3718 |
// jQuery data() is stored in a separate object inside the object's internal data |
|
3719 |
// cache in order to avoid key collisions between internal data and user-defined |
|
3720 |
// data. |
|
3721 |
if ( !pvt ) { |
|
3722 |
if ( !thisCache.data ) { |
|
3723 |
thisCache.data = {}; |
|
3724 |
} |
|
3725 | ||
3726 |
thisCache = thisCache.data; |
|
3727 |
} |
|
3728 | ||
3729 |
if ( data !== undefined ) { |
|
3730 |
thisCache[ jQuery.camelCase( name ) ] = data; |
|
3731 |
} |
|
3732 | ||
3733 |
// Check for both converted-to-camel and non-converted data property names |
|
3734 |
// If a data property was specified |
|
3735 |
if ( typeof name === "string" ) { |
|
3736 | ||
3737 |
// First Try to find as-is property data |
|
3738 |
ret = thisCache[ name ]; |
|
3739 | ||
3740 |
// Test for null|undefined property data |
|
3741 |
if ( ret == null ) { |
|
3742 | ||
3743 |
// Try to find the camelCased property |
|
3744 |
ret = thisCache[ jQuery.camelCase( name ) ]; |
|
3745 |
} |
|
3746 |
} else { |
|
3747 |
ret = thisCache; |
|
3748 |
} |
|
3749 | ||
3750 |
return ret; |
|
3751 |
} |
|
3752 | ||
3753 |
function internalRemoveData( elem, name, pvt ) { |
|
3754 |
if ( !jQuery.acceptData( elem ) ) { |
|
3755 |
return; |
|
3756 |
} |
|
3757 | ||
3758 |
var thisCache, i, |
|
3759 |
isNode = elem.nodeType, |
|
3760 | ||
3761 |
// See jQuery.data for more information |
|
3762 |
cache = isNode ? jQuery.cache : elem, |
|
3763 |
id = isNode ? elem[ jQuery.expando ] : jQuery.expando; |
|
3764 | ||
3765 |
// If there is already no cache entry for this object, there is no |
|
3766 |
// purpose in continuing |
|
3767 |
if ( !cache[ id ] ) { |
|
3768 |
return; |
|
3769 |
} |
|
3770 | ||
3771 |
if ( name ) { |
|
3772 | ||
3773 |
thisCache = pvt ? cache[ id ] : cache[ id ].data; |
|
3774 | ||
3775 |
if ( thisCache ) { |
|
3776 | ||
3777 |
// Support array or space separated string names for data keys |
|
3778 |
if ( !jQuery.isArray( name ) ) { |
|
3779 | ||
3780 |
// try the string as a key before any manipulation |
|
3781 |
if ( name in thisCache ) { |
|
3782 |
name = [ name ]; |
|
3783 |
} else { |
|
3784 | ||
3785 |
// split the camel cased version by spaces unless a key with the spaces exists |
|
3786 |
name = jQuery.camelCase( name ); |
|
3787 |
if ( name in thisCache ) { |
|
3788 |
name = [ name ]; |
|
3789 |
} else { |
|
3790 |
name = name.split(" "); |
|
3791 |
} |
|
3792 |
} |
|
3793 |
} else { |
|
3794 |
// If "name" is an array of keys... |
|
3795 |
// When data is initially created, via ("key", "val") signature, |
|
3796 |
// keys will be converted to camelCase. |
|
3797 |
// Since there is no way to tell _how_ a key was added, remove |
|
3798 |
// both plain key and camelCase key. #12786 |
|
3799 |
// This will only penalize the array argument path. |
|
3800 |
name = name.concat( jQuery.map( name, jQuery.camelCase ) ); |
|
3801 |
} |
|
3802 | ||
3803 |
i = name.length; |
|
3804 |
while ( i-- ) { |
|
3805 |
delete thisCache[ name[i] ]; |
|
3806 |
} |
|
3807 | ||
3808 |
// If there is no data left in the cache, we want to continue |
|
3809 |
// and let the cache object itself get destroyed |
|
3810 |
if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { |
|
3811 |
return; |
|
3812 |
} |
|
3813 |
} |
|
3814 |
} |
|
3815 | ||
3816 |
// See jQuery.data for more information |
|
3817 |
if ( !pvt ) { |
|
3818 |
delete cache[ id ].data; |
|
3819 | ||
3820 |
// Don't destroy the parent cache unless the internal data object |
|
3821 |
// had been the only thing left in it |
|
3822 |
if ( !isEmptyDataObject( cache[ id ] ) ) { |
|
3823 |
return; |
|
3824 |
} |
|
3825 |
} |
|
3826 | ||
3827 |
// Destroy the cache |
|
3828 |
if ( isNode ) { |
|
3829 |
jQuery.cleanData( [ elem ], true ); |
|
3830 | ||
3831 |
// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) |
|
3832 |
/* jshint eqeqeq: false */ |
|
3833 |
} else if ( support.deleteExpando || cache != cache.window ) { |
|
3834 |
/* jshint eqeqeq: true */ |
|
3835 |
delete cache[ id ]; |
|
3836 | ||
3837 |
// When all else fails, null |
|
3838 |
} else { |
|
3839 |
cache[ id ] = null; |
|
3840 |
} |
|
3841 |
} |
|
3842 | ||
3843 |
jQuery.extend({ |
|
3844 |
cache: {}, |
|
3845 | ||
3846 |
// The following elements (space-suffixed to avoid Object.prototype collisions) |
|
3847 |
// throw uncatchable exceptions if you attempt to set expando properties |
|
3848 |
noData: { |
|
3849 |
"applet ": true, |
|
3850 |
"embed ": true, |
|
3851 |
// ...but Flash objects (which have this classid) *can* handle expandos |
|
3852 |
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" |
|
3853 |
}, |
|
3854 | ||
3855 |
hasData: function( elem ) { |
|
3856 |
elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; |
|
3857 |
return !!elem && !isEmptyDataObject( elem ); |
|
3858 |
}, |
|
3859 | ||
3860 |
data: function( elem, name, data ) { |
|
3861 |
return internalData( elem, name, data ); |
|
3862 |
}, |
|
3863 | ||
3864 |
removeData: function( elem, name ) { |
|
3865 |
return internalRemoveData( elem, name ); |
|
3866 |
}, |
|
3867 | ||
3868 |
// For internal use only. |
|
3869 |
_data: function( elem, name, data ) { |
|
3870 |
return internalData( elem, name, data, true ); |
|
3871 |
}, |
|
3872 | ||
3873 |
_removeData: function( elem, name ) { |
|
3874 |
return internalRemoveData( elem, name, true ); |
|
3875 |
} |
|
3876 |
}); |
|
3877 | ||
3878 |
jQuery.fn.extend({ |
|
3879 |
data: function( key, value ) { |
|
3880 |
var i, name, data, |
|
3881 |
elem = this[0], |
|
3882 |
attrs = elem && elem.attributes; |
|
3883 | ||
3884 |
// Special expections of .data basically thwart jQuery.access, |
|
3885 |
// so implement the relevant behavior ourselves |
|
3886 | ||
3887 |
// Gets all values |
|
3888 |
if ( key === undefined ) { |
|
3889 |
if ( this.length ) { |
|
3890 |
data = jQuery.data( elem ); |
|
3891 | ||
3892 |
if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { |
|
3893 |
i = attrs.length; |
|
3894 |
while ( i-- ) { |
|
3895 |
name = attrs[i].name; |
|
3896 | ||
3897 |
if ( name.indexOf("data-") === 0 ) { |
|
3898 |
name = jQuery.camelCase( name.slice(5) ); |
|
3899 | ||
3900 |
dataAttr( elem, name, data[ name ] ); |
|
3901 |
} |
|
3902 |
} |
|
3903 |
jQuery._data( elem, "parsedAttrs", true ); |
|
3904 |
} |
|
3905 |
} |
|
3906 | ||
3907 |
return data; |
|
3908 |
} |
|
3909 | ||
3910 |
// Sets multiple values |
|
3911 |
if ( typeof key === "object" ) { |
|
3912 |
return this.each(function() { |
|
3913 |
jQuery.data( this, key ); |
|
3914 |
}); |
|
3915 |
} |
|
3916 | ||
3917 |
return arguments.length > 1 ? |
|
3918 | ||
3919 |
// Sets one value |
|
3920 |
this.each(function() { |
|
3921 |
jQuery.data( this, key, value ); |
|
3922 |
}) : |
|
3923 | ||
3924 |
// Gets one value |
|
3925 |
// Try to fetch any internally stored data first |
|
3926 |
elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; |
|
3927 |
}, |
|
3928 | ||
3929 |
removeData: function( key ) { |
|
3930 |
return this.each(function() { |
|
3931 |
jQuery.removeData( this, key ); |
|
3932 |
}); |
|
3933 |
} |
|
3934 |
}); |
|
3935 | ||
3936 | ||
3937 |
jQuery.extend({ |
|
3938 |
queue: function( elem, type, data ) { |
|
3939 |
var queue; |
|
3940 | ||
3941 |
if ( elem ) { |
|
3942 |
type = ( type || "fx" ) + "queue"; |
|
3943 |
queue = jQuery._data( elem, type ); |
|
3944 | ||
3945 |
// Speed up dequeue by getting out quickly if this is just a lookup |
|
3946 |
if ( data ) { |
|
3947 |
if ( !queue || jQuery.isArray(data) ) { |
|
3948 |
queue = jQuery._data( elem, type, jQuery.makeArray(data) ); |
|
3949 |
} else { |
|
3950 |
queue.push( data ); |
|
3951 |
} |
|
3952 |
} |
|
3953 |
return queue || []; |
|
3954 |
} |
|
3955 |
}, |
|
3956 | ||
3957 |
dequeue: function( elem, type ) { |
|
3958 |
type = type || "fx"; |
|
3959 | ||
3960 |
var queue = jQuery.queue( elem, type ), |
|
3961 |
startLength = queue.length, |
|
3962 |
fn = queue.shift(), |
|
3963 |
hooks = jQuery._queueHooks( elem, type ), |
|
3964 |
next = function() { |
|
3965 |
jQuery.dequeue( elem, type ); |
|
3966 |
}; |
|
3967 | ||
3968 |
// If the fx queue is dequeued, always remove the progress sentinel |
|
3969 |
if ( fn === "inprogress" ) { |
|
3970 |
fn = queue.shift(); |
|
3971 |
startLength--; |
|
3972 |
} |
|
3973 | ||
3974 |
if ( fn ) { |
|
3975 | ||
3976 |
// Add a progress sentinel to prevent the fx queue from being |
|
3977 |
// automatically dequeued |
|
3978 |
if ( type === "fx" ) { |
|
3979 |
queue.unshift( "inprogress" ); |
|
3980 |
} |
|
3981 | ||
3982 |
// clear up the last queue stop function |
|
3983 |
delete hooks.stop; |
|
3984 |
fn.call( elem, next, hooks ); |
|
3985 |
} |
|
3986 | ||
3987 |
if ( !startLength && hooks ) { |
|
3988 |
hooks.empty.fire(); |
|
3989 |
} |
|
3990 |
}, |
|
3991 | ||
3992 |
// not intended for public consumption - generates a queueHooks object, or returns the current one |
|
3993 |
_queueHooks: function( elem, type ) { |
|
3994 |
var key = type + "queueHooks"; |
|
3995 |
return jQuery._data( elem, key ) || jQuery._data( elem, key, { |
|
3996 |
empty: jQuery.Callbacks("once memory").add(function() { |
|
3997 |
jQuery._removeData( elem, type + "queue" ); |
|
3998 |
jQuery._removeData( elem, key ); |
|
3999 |
}) |
|
4000 |
}); |
|
4001 |
} |
|
4002 |
}); |
|
4003 | ||
4004 |
jQuery.fn.extend({ |
|
4005 |
queue: function( type, data ) { |
|
4006 |
var setter = 2; |
|
4007 | ||
4008 |
if ( typeof type !== "string" ) { |
|
4009 |
data = type; |
|
4010 |
type = "fx"; |
|
4011 |
setter--; |
|
4012 |
} |
|
4013 | ||
4014 |
if ( arguments.length < setter ) { |
|
4015 |
return jQuery.queue( this[0], type ); |
|
4016 |
} |
|
4017 | ||
4018 |
return data === undefined ? |
|
4019 |
this : |
|
4020 |
this.each(function() { |
|
4021 |
var queue = jQuery.queue( this, type, data ); |
|
4022 | ||
4023 |
// ensure a hooks for this queue |
|
4024 |
jQuery._queueHooks( this, type ); |
|
4025 | ||
4026 |
if ( type === "fx" && queue[0] !== "inprogress" ) { |
|
4027 |
jQuery.dequeue( this, type ); |
|
4028 |
} |
|
4029 |
}); |
|
4030 |
}, |
|
4031 |
dequeue: function( type ) { |
|
4032 |
return this.each(function() { |
|
4033 |
jQuery.dequeue( this, type ); |
|
4034 |
}); |
|
4035 |
}, |
|
4036 |
clearQueue: function( type ) { |
|
4037 |
return this.queue( type || "fx", [] ); |
|
4038 |
}, |
|
4039 |
// Get a promise resolved when queues of a certain type |
|
4040 |
// are emptied (fx is the type by default) |
|
4041 |
promise: function( type, obj ) { |
|
4042 |
var tmp, |
|
4043 |
count = 1, |
|
4044 |
defer = jQuery.Deferred(), |
|
4045 |
elements = this, |
|
4046 |
i = this.length, |
|
4047 |
resolve = function() { |
|
4048 |
if ( !( --count ) ) { |
|
4049 |
defer.resolveWith( elements, [ elements ] ); |
|
4050 |
} |
|
4051 |
}; |
|
4052 | ||
4053 |
if ( typeof type !== "string" ) { |
|
4054 |
obj = type; |
|
4055 |
type = undefined; |
|
4056 |
} |
|
4057 |
type = type || "fx"; |
|
4058 | ||
4059 |
while ( i-- ) { |
|
4060 |
tmp = jQuery._data( elements[ i ], type + "queueHooks" ); |
|
4061 |
if ( tmp && tmp.empty ) { |
|
4062 |
count++; |
|
4063 |
tmp.empty.add( resolve ); |
|
4064 |
} |
|
4065 |
} |
|
4066 |
resolve(); |
|
4067 |
return defer.promise( obj ); |
|
4068 |
} |
|
4069 |
}); |
|
4070 |
var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; |
|
4071 | ||
4072 |
var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; |
|
4073 | ||
4074 |
var isHidden = function( elem, el ) { |
|
4075 |
// isHidden might be called from jQuery#filter function; |
|
4076 |
// in that case, element will be second argument |
|
4077 |
elem = el || elem; |
|
4078 |
return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); |
|
4079 |
}; |
|
4080 | ||
4081 | ||
4082 | ||
4083 |
// Multifunctional method to get and set values of a collection |
|
4084 |
// The value/s can optionally be executed if it's a function |
|
4085 |
var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { |
|
4086 |
var i = 0, |
|
4087 |
length = elems.length, |
|
4088 |
bulk = key == null; |
|
4089 | ||
4090 |
// Sets many values |
|
4091 |
if ( jQuery.type( key ) === "object" ) { |
|
4092 |
chainable = true; |
|
4093 |
for ( i in key ) { |
|
4094 |
jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); |
|
4095 |
} |
|
4096 | ||
4097 |
// Sets one value |
|
4098 |
} else if ( value !== undefined ) { |
|
4099 |
chainable = true; |
|
4100 | ||
4101 |
if ( !jQuery.isFunction( value ) ) { |
|
4102 |
raw = true; |
|
4103 |
} |
|
4104 | ||
4105 |
if ( bulk ) { |
|
4106 |
// Bulk operations run against the entire set |
|
4107 |
if ( raw ) { |
|
4108 |
fn.call( elems, value ); |
|
4109 |
fn = null; |
|
4110 | ||
4111 |
// ...except when executing function values |
|
4112 |
} else { |
|
4113 |
bulk = fn; |
|
4114 |
fn = function( elem, key, value ) { |
|
4115 |
return bulk.call( jQuery( elem ), value ); |
|
4116 |
}; |
|
4117 |
} |
|
4118 |
} |
|
4119 | ||
4120 |
if ( fn ) { |
|
4121 |
for ( ; i < length; i++ ) { |
|
4122 |
fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); |
|
4123 |
} |
|
4124 |
} |
|
4125 |
} |
|
4126 | ||
4127 |
return chainable ? |
|
4128 |
elems : |
|
4129 | ||
4130 |
// Gets |
|
4131 |
bulk ? |
|
4132 |
fn.call( elems ) : |
|
4133 |
length ? fn( elems[0], key ) : emptyGet; |
|
4134 |
}; |
|
4135 |
var rcheckableType = (/^(?:checkbox|radio)$/i); |
|
4136 | ||
4137 | ||
4138 | ||
4139 |
(function() { |
|
4140 |
var fragment = document.createDocumentFragment(), |
|
4141 |
div = document.createElement("div"), |
|
4142 |
input = document.createElement("input"); |
|
4143 | ||
4144 |
// Setup |
|
4145 |
div.setAttribute( "className", "t" ); |
|
4146 |
div.innerHTML = " <link/><table></table><a href='/a'>a</a>"; |
|
4147 | ||
4148 |
// IE strips leading whitespace when .innerHTML is used |
|
4149 |
support.leadingWhitespace = div.firstChild.nodeType === 3; |
|
4150 | ||
4151 |
// Make sure that tbody elements aren't automatically inserted |
|
4152 |
// IE will insert them into empty tables |
|
4153 |
support.tbody = !div.getElementsByTagName( "tbody" ).length; |
|
4154 | ||
4155 |
// Make sure that link elements get serialized correctly by innerHTML |
|
4156 |
// This requires a wrapper element in IE |
|
4157 |
support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; |
|
4158 | ||
4159 |
// Makes sure cloning an html5 element does not cause problems |
|
4160 |
// Where outerHTML is undefined, this still works |
|
4161 |
support.html5Clone = |
|
4162 |
document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>"; |
|
4163 | ||
4164 |
// Check if a disconnected checkbox will retain its checked |
|
4165 |
// value of true after appended to the DOM (IE6/7) |
|
4166 |
input.type = "checkbox"; |
|
4167 |
input.checked = true; |
|
4168 |
fragment.appendChild( input ); |
|
4169 |
support.appendChecked = input.checked; |
|
4170 | ||
4171 |
// Make sure textarea (and checkbox) defaultValue is properly cloned |
|
4172 |
// Support: IE6-IE11+ |
|
4173 |
div.innerHTML = "<textarea>x</textarea>"; |
|
4174 |
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; |
|
4175 | ||
4176 |
// #11217 - WebKit loses check when the name is after the checked attribute |
|
4177 |
fragment.appendChild( div ); |
|
4178 |
div.innerHTML = "<input type='radio' checked='checked' name='t'/>"; |
|
4179 | ||
4180 |
// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 |
|
4181 |
// old WebKit doesn't clone checked state correctly in fragments |
|
4182 |
support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; |
|
4183 | ||
4184 |
// Support: IE<9 |
|
4185 |
// Opera does not clone events (and typeof div.attachEvent === undefined). |
|
4186 |
// IE9-10 clones events bound via attachEvent, but they don't trigger with .click() |
|
4187 |
support.noCloneEvent = true; |
|
4188 |
if ( div.attachEvent ) { |
|
4189 |
div.attachEvent( "onclick", function() { |
|
4190 |
support.noCloneEvent = false; |
|
4191 |
}); |
|
4192 | ||
4193 |
div.cloneNode( true ).click(); |
|
4194 |
} |
|
4195 | ||
4196 |
// Execute the test only if not already executed in another module. |
|
4197 |
if (support.deleteExpando == null) { |
|
4198 |
// Support: IE<9 |
|
4199 |
support.deleteExpando = true; |
|
4200 |
try { |
|
4201 |
delete div.test; |
|
4202 |
} catch( e ) { |
|
4203 |
support.deleteExpando = false; |
|
4204 |
} |
|
4205 |
} |
|
4206 | ||
4207 |
// Null elements to avoid leaks in IE. |
|
4208 |
fragment = div = input = null; |
|
4209 |
})(); |
|
4210 | ||
4211 | ||
4212 |
(function() { |
|
4213 |
var i, eventName, |
|
4214 |
div = document.createElement( "div" ); |
|
4215 | ||
4216 |
// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event) |
|
4217 |
for ( i in { submit: true, change: true, focusin: true }) { |
|
4218 |
eventName = "on" + i; |
|
4219 | ||
4220 |
if ( !(support[ i + "Bubbles" ] = eventName in window) ) { |
|
4221 |
// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) |
|
4222 |
div.setAttribute( eventName, "t" ); |
|
4223 |
support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false; |
|
4224 |
} |
|
4225 |
} |
|
4226 | ||
4227 |
// Null elements to avoid leaks in IE. |
|
4228 |
div = null; |
|
4229 |
})(); |
|
4230 | ||
4231 | ||
4232 |
var rformElems = /^(?:input|select|textarea)$/i, |
|
4233 |
rkeyEvent = /^key/, |
|
4234 |
rmouseEvent = /^(?:mouse|contextmenu)|click/, |
|
4235 |
rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, |
|
4236 |
rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; |
|
4237 | ||
4238 |
function returnTrue() { |
|
4239 |
return true; |
|
4240 |
} |
|
4241 | ||
4242 |
function returnFalse() { |
|
4243 |
return false; |
|
4244 |
} |
|
4245 | ||
4246 |
function safeActiveElement() { |
|
4247 |
try { |
|
4248 |
return document.activeElement; |
|
4249 |
} catch ( err ) { } |
|
4250 |
} |
|
4251 | ||
4252 |
/* |
|
4253 |
* Helper functions for managing events -- not part of the public interface. |
|
4254 |
* Props to Dean Edwards' addEvent library for many of the ideas. |
|
4255 |
*/ |
|
4256 |
jQuery.event = { |
|
4257 | ||
4258 |
global: {}, |
|
4259 | ||
4260 |
add: function( elem, types, handler, data, selector ) { |
|
4261 |
var tmp, events, t, handleObjIn, |
|
4262 |
special, eventHandle, handleObj, |
|
4263 |
handlers, type, namespaces, origType, |
|
4264 |
elemData = jQuery._data( elem ); |
|
4265 | ||
4266 |
// Don't attach events to noData or text/comment nodes (but allow plain objects) |
|
4267 |
if ( !elemData ) { |
|
4268 |
return; |
|
4269 |
} |
|
4270 | ||
4271 |
// Caller can pass in an object of custom data in lieu of the handler |
|
4272 |
if ( handler.handler ) { |
|
4273 |
handleObjIn = handler; |
|
4274 |
handler = handleObjIn.handler; |
|
4275 |
selector = handleObjIn.selector; |
|
4276 |
} |
|
4277 | ||
4278 |
// Make sure that the handler has a unique ID, used to find/remove it later |
|
4279 |
if ( !handler.guid ) { |
|
4280 |
handler.guid = jQuery.guid++; |
|
4281 |
} |
|
4282 | ||
4283 |
// Init the element's event structure and main handler, if this is the first |
|
4284 |
if ( !(events = elemData.events) ) { |
|
4285 |
events = elemData.events = {}; |
|
4286 |
} |
|
4287 |
if ( !(eventHandle = elemData.handle) ) { |
|
4288 |
eventHandle = elemData.handle = function( e ) { |
|
4289 |
// Discard the second event of a jQuery.event.trigger() and |
|
4290 |
// when an event is called after a page has unloaded |
|
4291 |
return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ? |
|
4292 |
jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : |
|
4293 |
undefined; |
|
4294 |
}; |
|
4295 |
// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events |
|
4296 |
eventHandle.elem = elem; |
|
4297 |
} |
|
4298 | ||
4299 |
// Handle multiple events separated by a space |
|
4300 |
types = ( types || "" ).match( rnotwhite ) || [ "" ]; |
|
4301 |
t = types.length; |
|
4302 |
while ( t-- ) { |
|
4303 |
tmp = rtypenamespace.exec( types[t] ) || []; |
|
4304 |
type = origType = tmp[1]; |
|
4305 |
namespaces = ( tmp[2] || "" ).split( "." ).sort(); |
|
4306 | ||
4307 |
// There *must* be a type, no attaching namespace-only handlers |
|
4308 |
if ( !type ) { |
|
4309 |
continue; |
|
4310 |
} |
|
4311 | ||
4312 |
// If event changes its type, use the special event handlers for the changed type |
|
4313 |
special = jQuery.event.special[ type ] || {}; |
|
4314 | ||
4315 |
// If selector defined, determine special event api type, otherwise given type |
|
4316 |
type = ( selector ? special.delegateType : special.bindType ) || type; |
|
4317 | ||
4318 |
// Update special based on newly reset type |
|
4319 |
special = jQuery.event.special[ type ] || {}; |
|
4320 | ||
4321 |
// handleObj is passed to all event handlers |
|
4322 |
handleObj = jQuery.extend({ |
|
4323 |
type: type, |
|
4324 |
origType: origType, |
|
4325 |
data: data, |
|
4326 |
handler: handler, |
|
4327 |
guid: handler.guid, |
|
4328 |
selector: selector, |
|
4329 |
needsContext: selector && jQuery.expr.match.needsContext.test( selector ), |
|
4330 |
namespace: namespaces.join(".") |
|
4331 |
}, handleObjIn ); |
|
4332 | ||
4333 |
// Init the event handler queue if we're the first |
|
4334 |
if ( !(handlers = events[ type ]) ) { |
|
4335 |
handlers = events[ type ] = []; |
|
4336 |
handlers.delegateCount = 0; |
|
4337 | ||
4338 |
// Only use addEventListener/attachEvent if the special events handler returns false |
|
4339 |
if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { |
|
4340 |
// Bind the global event handler to the element |
|
4341 |
if ( elem.addEventListener ) { |
|
4342 |
elem.addEventListener( type, eventHandle, false ); |
|
4343 | ||
4344 |
} else if ( elem.attachEvent ) { |
|
4345 |
elem.attachEvent( "on" + type, eventHandle ); |
|
4346 |
} |
|
4347 |
} |
|
4348 |
} |
|
4349 | ||
4350 |
if ( special.add ) { |
|
4351 |
special.add.call( elem, handleObj ); |
|
4352 | ||
4353 |
if ( !handleObj.handler.guid ) { |
|
4354 |
handleObj.handler.guid = handler.guid; |
|
4355 |
} |
|
4356 |
} |
|
4357 | ||
4358 |
// Add to the element's handler list, delegates in front |
|
4359 |
if ( selector ) { |
|
4360 |
handlers.splice( handlers.delegateCount++, 0, handleObj ); |
|
4361 |
} else { |
|
4362 |
handlers.push( handleObj ); |
|
4363 |
} |
|
4364 | ||
4365 |
// Keep track of which events have ever been used, for event optimization |
|
4366 |
jQuery.event.global[ type ] = true; |
|
4367 |
} |
|
4368 | ||
4369 |
// Nullify elem to prevent memory leaks in IE |
|
4370 |
elem = null; |
|
4371 |
}, |
|
4372 | ||
4373 |
// Detach an event or set of events from an element |
|
4374 |
remove: function( elem, types, handler, selector, mappedTypes ) { |
|
4375 |
var j, handleObj, tmp, |
|
4376 |
origCount, t, events, |
|
4377 |
special, handlers, type, |
|
4378 |
namespaces, origType, |
|
4379 |
elemData = jQuery.hasData( elem ) && jQuery._data( elem ); |
|
4380 | ||
4381 |
if ( !elemData || !(events = elemData.events) ) { |
|
4382 |
return; |
|
4383 |
} |
|
4384 | ||
4385 |
// Once for each type.namespace in types; type may be omitted |
|
4386 |
types = ( types || "" ).match( rnotwhite ) || [ "" ]; |
|
4387 |
t = types.length; |
|
4388 |
while ( t-- ) { |
|
4389 |
tmp = rtypenamespace.exec( types[t] ) || []; |
|
4390 |
type = origType = tmp[1]; |
|
4391 |
namespaces = ( tmp[2] || "" ).split( "." ).sort(); |
|
4392 | ||
4393 |
// Unbind all events (on this namespace, if provided) for the element |
|
4394 |
if ( !type ) { |
|
4395 |
for ( type in events ) { |
|
4396 |
jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); |
|
4397 |
} |
|
4398 |
continue; |
|
4399 |
} |
|
4400 | ||
4401 |
special = jQuery.event.special[ type ] || {}; |
|
4402 |
type = ( selector ? special.delegateType : special.bindType ) || type; |
|
4403 |
handlers = events[ type ] || []; |
|
4404 |
tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); |
|
4405 | ||
4406 |
// Remove matching events |
|
4407 |
origCount = j = handlers.length; |
|
4408 |
while ( j-- ) { |
|
4409 |
handleObj = handlers[ j ]; |
|
4410 | ||
4411 |
if ( ( mappedTypes || origType === handleObj.origType ) && |
|
4412 |
( !handler || handler.guid === handleObj.guid ) && |
|
4413 |
( !tmp || tmp.test( handleObj.namespace ) ) && |
|
4414 |
( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { |
|
4415 |
handlers.splice( j, 1 ); |
|
4416 | ||
4417 |
if ( handleObj.selector ) { |
|
4418 |
handlers.delegateCount--; |
|
4419 |
} |
|
4420 |
if ( special.remove ) { |
|
4421 |
special.remove.call( elem, handleObj ); |
|
4422 |
} |
|
4423 |
} |
|
4424 |
} |
|
4425 | ||
4426 |
// Remove generic event handler if we removed something and no more handlers exist |
|
4427 |
// (avoids potential for endless recursion during removal of special event handlers) |
|
4428 |
if ( origCount && !handlers.length ) { |
|
4429 |
if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { |
|
4430 |
jQuery.removeEvent( elem, type, elemData.handle ); |
|
4431 |
} |
|
4432 | ||
4433 |
delete events[ type ]; |
|
4434 |
} |
|
4435 |
} |
|
4436 | ||
4437 |
// Remove the expando if it's no longer used |
|
4438 |
if ( jQuery.isEmptyObject( events ) ) { |
|
4439 |
delete elemData.handle; |
|
4440 | ||
4441 |
// removeData also checks for emptiness and clears the expando if empty |
|
4442 |
// so use it instead of delete |
|
4443 |
jQuery._removeData( elem, "events" ); |
|
4444 |
} |
|
4445 |
}, |
|
4446 | ||
4447 |
trigger: function( event, data, elem, onlyHandlers ) { |
|
4448 |
var handle, ontype, cur, |
|
4449 |
bubbleType, special, tmp, i, |
|
4450 |
eventPath = [ elem || document ], |
|
4451 |
type = hasOwn.call( event, "type" ) ? event.type : event, |
|
4452 |
namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; |
|
4453 | ||
4454 |
cur = tmp = elem = elem || document; |
|
4455 | ||
4456 |
// Don't do events on text and comment nodes |
|
4457 |
if ( elem.nodeType === 3 || elem.nodeType === 8 ) { |
|
4458 |
return; |
|
4459 |
} |
|
4460 | ||
4461 |
// focus/blur morphs to focusin/out; ensure we're not firing them right now |
|
4462 |
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { |
|
4463 |
return; |
|
4464 |
} |
|
4465 | ||
4466 |
if ( type.indexOf(".") >= 0 ) { |
|
4467 |
// Namespaced trigger; create a regexp to match event type in handle() |
|
4468 |
namespaces = type.split("."); |
|
4469 |
type = namespaces.shift(); |
|
4470 |
namespaces.sort(); |
|
4471 |
} |
|
4472 |
ontype = type.indexOf(":") < 0 && "on" + type; |
|
4473 | ||
4474 |
// Caller can pass in a jQuery.Event object, Object, or just an event type string |
|
4475 |
event = event[ jQuery.expando ] ? |
|
4476 |
event : |
|
4477 |
new jQuery.Event( type, typeof event === "object" && event ); |
|
4478 | ||
4479 |
// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) |
|
4480 |
event.isTrigger = onlyHandlers ? 2 : 3; |
|
4481 |
event.namespace = namespaces.join("."); |
|
4482 |
event.namespace_re = event.namespace ? |
|
4483 |
new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : |
|
4484 |
null; |
|
4485 | ||
4486 |
// Clean up the event in case it is being reused |
|
4487 |
event.result = undefined; |
|
4488 |
if ( !event.target ) { |
|
4489 |
event.target = elem; |
|
4490 |
} |
|
4491 | ||
4492 |
// Clone any incoming data and prepend the event, creating the handler arg list |
|
4493 |
data = data == null ? |
|
4494 |
[ event ] : |
|
4495 |
jQuery.makeArray( data, [ event ] ); |
|
4496 | ||
4497 |
// Allow special events to draw outside the lines |
|
4498 |
special = jQuery.event.special[ type ] || {}; |
|
4499 |
if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { |
|
4500 |
return; |
|
4501 |
} |
|
4502 | ||
4503 |
// Determine event propagation path in advance, per W3C events spec (#9951) |
|
4504 |
// Bubble up to document, then to window; watch for a global ownerDocument var (#9724) |
|
4505 |
if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { |
|
4506 | ||
4507 |
bubbleType = special.delegateType || type; |
|
4508 |
if ( !rfocusMorph.test( bubbleType + type ) ) { |
|
4509 |
cur = cur.parentNode; |
|
4510 |
} |
|
4511 |
for ( ; cur; cur = cur.parentNode ) { |
|
4512 |
eventPath.push( cur ); |
|
4513 |
tmp = cur; |
|
4514 |
} |
|
4515 | ||
4516 |
// Only add window if we got to document (e.g., not plain obj or detached DOM) |
|
4517 |
if ( tmp === (elem.ownerDocument || document) ) { |
|
4518 |
eventPath.push( tmp.defaultView || tmp.parentWindow || window ); |
|
4519 |
} |
|
4520 |
} |
|
4521 | ||
4522 |
// Fire handlers on the event path |
|
4523 |
i = 0; |
|
4524 |
while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { |
|
4525 | ||
4526 |
event.type = i > 1 ? |
|
4527 |
bubbleType : |
|
4528 |
special.bindType || type; |
|
4529 | ||
4530 |
// jQuery handler |
|
4531 |
handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); |
|
4532 |
if ( handle ) { |
|
4533 |
handle.apply( cur, data ); |
|
4534 |
} |
|
4535 | ||
4536 |
// Native handler |
|
4537 |
handle = ontype && cur[ ontype ]; |
|
4538 |
if ( handle && handle.apply && jQuery.acceptData( cur ) ) { |
|
4539 |
event.result = handle.apply( cur, data ); |
|
4540 |
if ( event.result === false ) { |
|
4541 |
event.preventDefault(); |
|
4542 |
} |
|
4543 |
} |
|
4544 |
} |
|
4545 |
event.type = type; |
|
4546 | ||
4547 |
// If nobody prevented the default action, do it now |
|
4548 |
if ( !onlyHandlers && !event.isDefaultPrevented() ) { |
|
4549 | ||
4550 |
if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && |
|
4551 |
jQuery.acceptData( elem ) ) { |
|
4552 | ||
4553 |
// Call a native DOM method on the target with the same name name as the event. |
|
4554 |
// Can't use an .isFunction() check here because IE6/7 fails that test. |
|
4555 |
// Don't do default actions on window, that's where global variables be (#6170) |
|
4556 |
if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { |
|
4557 | ||
4558 |
// Don't re-trigger an onFOO event when we call its FOO() method |
|
4559 |
tmp = elem[ ontype ]; |
|
4560 | ||
4561 |
if ( tmp ) { |
|
4562 |
elem[ ontype ] = null; |
|
4563 |
} |
|
4564 | ||
4565 |
// Prevent re-triggering of the same event, since we already bubbled it above |
|
4566 |
jQuery.event.triggered = type; |
|
4567 |
try { |
|
4568 |
elem[ type ](); |
|
4569 |
} catch ( e ) { |
|
4570 |
// IE<9 dies on focus/blur to hidden element (#1486,#12518) |
|
4571 |
// only reproducible on winXP IE8 native, not IE9 in IE8 mode |
|
4572 |
} |
|
4573 |
jQuery.event.triggered = undefined; |
|
4574 | ||
4575 |
if ( tmp ) { |
|
4576 |
elem[ ontype ] = tmp; |
|
4577 |
} |
|
4578 |
} |
|
4579 |
} |
|
4580 |
} |
|
4581 | ||
4582 |
return event.result; |
|
4583 |
}, |
|
4584 | ||
4585 |
dispatch: function( event ) { |
|
4586 | ||
4587 |
// Make a writable jQuery.Event from the native event object |
|
4588 |
event = jQuery.event.fix( event ); |
|
4589 | ||
4590 |
var i, ret, handleObj, matched, j, |
|
4591 |
handlerQueue = [], |
|
4592 |
args = slice.call( arguments ), |
|
4593 |
handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], |
|
4594 |
special = jQuery.event.special[ event.type ] || {}; |
|
4595 | ||
4596 |
// Use the fix-ed jQuery.Event rather than the (read-only) native event |
|
4597 |
args[0] = event; |
|
4598 |
event.delegateTarget = this; |
|
4599 | ||
4600 |
// Call the preDispatch hook for the mapped type, and let it bail if desired |
|
4601 |
if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { |
|
4602 |
return; |
|
4603 |
} |
|
4604 | ||
4605 |
// Determine handlers |
|
4606 |
handlerQueue = jQuery.event.handlers.call( this, event, handlers ); |
|
4607 | ||
4608 |
// Run delegates first; they may want to stop propagation beneath us |
|
4609 |
i = 0; |
|
4610 |
while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { |
|
4611 |
event.currentTarget = matched.elem; |
|
4612 | ||
4613 |
j = 0; |
|
4614 |
while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { |
|
4615 | ||
4616 |
// Triggered event must either 1) have no namespace, or |
|
4617 |
// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). |
|
4618 |
if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { |
|
4619 | ||
4620 |
event.handleObj = handleObj; |
|
4621 |
event.data = handleObj.data; |
|
4622 | ||
4623 |
ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) |
|
4624 |
.apply( matched.elem, args ); |
|
4625 | ||
4626 |
if ( ret !== undefined ) { |
|
4627 |
if ( (event.result = ret) === false ) { |
|
4628 |
event.preventDefault(); |
|
4629 |
event.stopPropagation(); |
|
4630 |
} |
|
4631 |
} |
|
4632 |
} |
|
4633 |
} |
|
4634 |
} |
|
4635 | ||
4636 |
// Call the postDispatch hook for the mapped type |
|
4637 |
if ( special.postDispatch ) { |
|
4638 |
special.postDispatch.call( this, event ); |
|
4639 |
} |
|
4640 | ||
4641 |
return event.result; |
|
4642 |
}, |
|
4643 | ||
4644 |
handlers: function( event, handlers ) { |
|
4645 |
var sel, handleObj, matches, i, |
|
4646 |
handlerQueue = [], |
|
4647 |
delegateCount = handlers.delegateCount, |
|
4648 |
cur = event.target; |
|
4649 | ||
4650 |
// Find delegate handlers |
|
4651 |
// Black-hole SVG <use> instance trees (#13180) |
|
4652 |
// Avoid non-left-click bubbling in Firefox (#3861) |
|
4653 |
if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { |
|
4654 | ||
4655 |
/* jshint eqeqeq: false */ |
|
4656 |
for ( ; cur != this; cur = cur.parentNode || this ) { |
|
4657 |
/* jshint eqeqeq: true */ |
|
4658 | ||
4659 |
// Don't check non-elements (#13208) |
|
4660 |
// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) |
|
4661 |
if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { |
|
4662 |
matches = []; |
|
4663 |
for ( i = 0; i < delegateCount; i++ ) { |
|
4664 |
handleObj = handlers[ i ]; |
|
4665 | ||
4666 |
// Don't conflict with Object.prototype properties (#13203) |
|
4667 |
sel = handleObj.selector + " "; |
|
4668 | ||
4669 |
if ( matches[ sel ] === undefined ) { |
|
4670 |
matches[ sel ] = handleObj.needsContext ? |
|
4671 |
jQuery( sel, this ).index( cur ) >= 0 : |
|
4672 |
jQuery.find( sel, this, null, [ cur ] ).length; |
|
4673 |
} |
|
4674 |
if ( matches[ sel ] ) { |
|
4675 |
matches.push( handleObj ); |
|
4676 |
} |
|
4677 |
} |
|
4678 |
if ( matches.length ) { |
|
4679 |
handlerQueue.push({ elem: cur, handlers: matches }); |
|
4680 |
} |
|
4681 |
} |
|
4682 |
} |
|
4683 |
} |
|
4684 | ||
4685 |
// Add the remaining (directly-bound) handlers |
|
4686 |
if ( delegateCount < handlers.length ) { |
|
4687 |
handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); |
|
4688 |
} |
|
4689 | ||
4690 |
return handlerQueue; |
|
4691 |
}, |
|
4692 | ||
4693 |
fix: function( event ) { |
|
4694 |
if ( event[ jQuery.expando ] ) { |
|
4695 |
return event; |
|
4696 |
} |
|
4697 | ||
4698 |
// Create a writable copy of the event object and normalize some properties |
|
4699 |
var i, prop, copy, |
|
4700 |
type = event.type, |
|
4701 |
originalEvent = event, |
|
4702 |
fixHook = this.fixHooks[ type ]; |
|
4703 | ||
4704 |
if ( !fixHook ) { |
|
4705 |
this.fixHooks[ type ] = fixHook = |
|
4706 |
rmouseEvent.test( type ) ? this.mouseHooks : |
|
4707 |
rkeyEvent.test( type ) ? this.keyHooks : |
|
4708 |
{}; |
|
4709 |
} |
|
4710 |
copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; |
|
4711 | ||
4712 |
event = new jQuery.Event( originalEvent ); |
|
4713 | ||
4714 |
i = copy.length; |
|
4715 |
while ( i-- ) { |
|
4716 |
prop = copy[ i ]; |
|
4717 |
event[ prop ] = originalEvent[ prop ]; |
|
4718 |
} |
|
4719 | ||
4720 |
// Support: IE<9 |
|
4721 |
// Fix target property (#1925) |
|
4722 |
if ( !event.target ) { |
|
4723 |
event.target = originalEvent.srcElement || document; |
|
4724 |
} |
|
4725 | ||
4726 |
// Support: Chrome 23+, Safari? |
|
4727 |
// Target should not be a text node (#504, #13143) |
|
4728 |
if ( event.target.nodeType === 3 ) { |
|
4729 |
event.target = event.target.parentNode; |
|
4730 |
} |
|
4731 | ||
4732 |
// Support: IE<9 |
|
4733 |
// For mouse/key events, metaKey==false if it's undefined (#3368, #11328) |
|
4734 |
event.metaKey = !!event.metaKey; |
|
4735 | ||
4736 |
return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; |
|
4737 |
}, |
|
4738 | ||
4739 |
// Includes some event props shared by KeyEvent and MouseEvent |
|
4740 |
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), |
|
4741 | ||
4742 |
fixHooks: {}, |
|
4743 | ||
4744 |
keyHooks: { |
|
4745 |
props: "char charCode key keyCode".split(" "), |
|
4746 |
filter: function( event, original ) { |
|
4747 | ||
4748 |
// Add which for key events |
|
4749 |
if ( event.which == null ) { |
|
4750 |
event.which = original.charCode != null ? original.charCode : original.keyCode; |
|
4751 |
} |
|
4752 | ||
4753 |
return event; |
|
4754 |
} |
|
4755 |
}, |
|
4756 | ||
4757 |
mouseHooks: { |
|
4758 |
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), |
|
4759 |
filter: function( event, original ) { |
|
4760 |
var body, eventDoc, doc, |
|
4761 |
button = original.button, |
|
4762 |
fromElement = original.fromElement; |
|
4763 | ||
4764 |
// Calculate pageX/Y if missing and clientX/Y available |
|
4765 |
if ( event.pageX == null && original.clientX != null ) { |
|
4766 |
eventDoc = event.target.ownerDocument || document; |
|
4767 |
doc = eventDoc.documentElement; |
|
4768 |
body = eventDoc.body; |
|
4769 | ||
4770 |
event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); |
|
4771 |
event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); |
|
4772 |
} |
|
4773 | ||
4774 |
// Add relatedTarget, if necessary |
|
4775 |
if ( !event.relatedTarget && fromElement ) { |
|
4776 |
event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; |
|
4777 |
} |
|
4778 | ||
4779 |
// Add which for click: 1 === left; 2 === middle; 3 === right |
|
4780 |
// Note: button is not normalized, so don't use it |
|
4781 |
if ( !event.which && button !== undefined ) { |
|
4782 |
event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); |
|
4783 |
} |
|
4784 | ||
4785 |
return event; |
|
4786 |
} |
|
4787 |
}, |
|
4788 | ||
4789 |
special: { |
|
4790 |
load: { |
|
4791 |
// Prevent triggered image.load events from bubbling to window.load |
|
4792 |
noBubble: true |
|
4793 |
}, |
|
4794 |
focus: { |
|
4795 |
// Fire native event if possible so blur/focus sequence is correct |
|
4796 |
trigger: function() { |
|
4797 |
if ( this !== safeActiveElement() && this.focus ) { |
|
4798 |
try { |
|
4799 |
this.focus(); |
|
4800 |
return false; |
|
4801 |
} catch ( e ) { |
|
4802 |
// Support: IE<9 |
|
4803 |
// If we error on focus to hidden element (#1486, #12518), |
|
4804 |
// let .trigger() run the handlers |
|
4805 |
} |
|
4806 |
} |
|
4807 |
}, |
|
4808 |
delegateType: "focusin" |
|
4809 |
}, |
|
4810 |
blur: { |
|
4811 |
trigger: function() { |
|
4812 |
if ( this === safeActiveElement() && this.blur ) { |
|
4813 |
this.blur(); |
|
4814 |
return false; |
|
4815 |
} |
|
4816 |
}, |
|
4817 |
delegateType: "focusout" |
|
4818 |
}, |
|
4819 |
click: { |
|
4820 |
// For checkbox, fire native event so checked state will be right |
|
4821 |
trigger: function() { |
|
4822 |
if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { |
|
4823 |
this.click(); |
|
4824 |
return false; |
|
4825 |
} |
|
4826 |
}, |
|
4827 | ||
4828 |
// For cross-browser consistency, don't fire native .click() on links |
|
4829 |
_default: function( event ) { |
|
4830 |
return jQuery.nodeName( event.target, "a" ); |
|
4831 |
} |
|
4832 |
}, |
|
4833 | ||
4834 |
beforeunload: { |
|
4835 |
postDispatch: function( event ) { |
|
4836 | ||
4837 |
// Even when returnValue equals to undefined Firefox will still show alert |
|
4838 |
if ( event.result !== undefined ) { |
|
4839 |
event.originalEvent.returnValue = event.result; |
|
4840 |
} |
|
4841 |
} |
|
4842 |
} |
|
4843 |
}, |
|
4844 | ||
4845 |
simulate: function( type, elem, event, bubble ) { |
|
4846 |
// Piggyback on a donor event to simulate a different one. |
|
4847 |
// Fake originalEvent to avoid donor's stopPropagation, but if the |
|
4848 |
// simulated event prevents default then we do the same on the donor. |
|
4849 |
var e = jQuery.extend( |
|
4850 |
new jQuery.Event(), |
|
4851 |
event, |
|
4852 |
{ |
|
4853 |
type: type, |
|
4854 |
isSimulated: true, |
|
4855 |
originalEvent: {} |
|
4856 |
} |
|
4857 |
); |
|
4858 |
if ( bubble ) { |
|
4859 |
jQuery.event.trigger( e, null, elem ); |
|
4860 |
} else { |
|
4861 |
jQuery.event.dispatch.call( elem, e ); |
|
4862 |
} |
|
4863 |
if ( e.isDefaultPrevented() ) { |
|
4864 |
event.preventDefault(); |
|
4865 |
} |
|
4866 |
} |
|
4867 |
}; |
|
4868 | ||
4869 |
jQuery.removeEvent = document.removeEventListener ? |
|
4870 |
function( elem, type, handle ) { |
|
4871 |
if ( elem.removeEventListener ) { |
|
4872 |
elem.removeEventListener( type, handle, false ); |
|
4873 |
} |
|
4874 |
} : |
|
4875 |
function( elem, type, handle ) { |
|
4876 |
var name = "on" + type; |
|
4877 | ||
4878 |
if ( elem.detachEvent ) { |
|
4879 | ||
4880 |
// #8545, #7054, preventing memory leaks for custom events in IE6-8 |
|
4881 |
// detachEvent needed property on element, by name of that event, to properly expose it to GC |
|
4882 |
if ( typeof elem[ name ] === strundefined ) { |
|
4883 |
elem[ name ] = null; |
|
4884 |
} |
|
4885 | ||
4886 |
elem.detachEvent( name, handle ); |
|
4887 |
} |
|
4888 |
}; |
|
4889 | ||
4890 |
jQuery.Event = function( src, props ) { |
|
4891 |
// Allow instantiation without the 'new' keyword |
|
4892 |
if ( !(this instanceof jQuery.Event) ) { |
|
4893 |
return new jQuery.Event( src, props ); |
|
4894 |
} |
|
4895 | ||
4896 |
// Event object |
|
4897 |
if ( src && src.type ) { |
|
4898 |
this.originalEvent = src; |
|
4899 |
this.type = src.type; |
|
4900 | ||
4901 |
// Events bubbling up the document may have been marked as prevented |
|
4902 |
// by a handler lower down the tree; reflect the correct value. |
|
4903 |
this.isDefaultPrevented = src.defaultPrevented || |
|
4904 |
src.defaultPrevented === undefined && ( |
|
4905 |
// Support: IE < 9 |
|
4906 |
src.returnValue === false || |
|
4907 |
// Support: Android < 4.0 |
|
4908 |
src.getPreventDefault && src.getPreventDefault() ) ? |
|
4909 |
returnTrue : |
|
4910 |
returnFalse; |
|
4911 | ||
4912 |
// Event type |
|
4913 |
} else { |
|
4914 |
this.type = src; |
|
4915 |
} |
|
4916 | ||
4917 |
// Put explicitly provided properties onto the event object |
|
4918 |
if ( props ) { |
|
4919 |
jQuery.extend( this, props ); |
|
4920 |
} |
|
4921 | ||
4922 |
// Create a timestamp if incoming event doesn't have one |
|
4923 |
this.timeStamp = src && src.timeStamp || jQuery.now(); |
|
4924 | ||
4925 |
// Mark it as fixed |
|
4926 |
this[ jQuery.expando ] = true; |
|
4927 |
}; |
|
4928 | ||
4929 |
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding |
|
4930 |
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html |
|
4931 |
jQuery.Event.prototype = { |
|
4932 |
isDefaultPrevented: returnFalse, |
|
4933 |
isPropagationStopped: returnFalse, |
|
4934 |
isImmediatePropagationStopped: returnFalse, |
|
4935 | ||
4936 |
preventDefault: function() { |
|
4937 |
var e = this.originalEvent; |
|
4938 | ||
4939 |
this.isDefaultPrevented = returnTrue; |
|
4940 |
if ( !e ) { |
|
4941 |
return; |
|
4942 |
} |
|
4943 | ||
4944 |
// If preventDefault exists, run it on the original event |
|
4945 |
if ( e.preventDefault ) { |
|
4946 |
e.preventDefault(); |
|
4947 | ||
4948 |
// Support: IE |
|
4949 |
// Otherwise set the returnValue property of the original event to false |
|
4950 |
} else { |
|
4951 |
e.returnValue = false; |
|
4952 |
} |
|
4953 |
}, |
|
4954 |
stopPropagation: function() { |
|
4955 |
var e = this.originalEvent; |
|
4956 | ||
4957 |
this.isPropagationStopped = returnTrue; |
|
4958 |
if ( !e ) { |
|
4959 |
return; |
|
4960 |
} |
|
4961 |
// If stopPropagation exists, run it on the original event |
|
4962 |
if ( e.stopPropagation ) { |
|
4963 |
e.stopPropagation(); |
|
4964 |
} |
|
4965 | ||
4966 |
// Support: IE |
|
4967 |
// Set the cancelBubble property of the original event to true |
|
4968 |
e.cancelBubble = true; |
|
4969 |
}, |
|
4970 |
stopImmediatePropagation: function() { |
|
4971 |
this.isImmediatePropagationStopped = returnTrue; |
|
4972 |
this.stopPropagation(); |
|
4973 |
} |
|
4974 |
}; |
|
4975 | ||
4976 |
// Create mouseenter/leave events using mouseover/out and event-time checks |
|
4977 |
jQuery.each({ |
|
4978 |
mouseenter: "mouseover", |
|
4979 |
mouseleave: "mouseout" |
|
4980 |
}, function( orig, fix ) { |
|
4981 |
jQuery.event.special[ orig ] = { |
|
4982 |
delegateType: fix, |
|
4983 |
bindType: fix, |
|
4984 | ||
4985 |
handle: function( event ) { |
|
4986 |
var ret, |
|
4987 |
target = this, |
|
4988 |
related = event.relatedTarget, |
|
4989 |
handleObj = event.handleObj; |
|
4990 | ||
4991 |
// For mousenter/leave call the handler if related is outside the target. |
|
4992 |
// NB: No relatedTarget if the mouse left/entered the browser window |
|
4993 |
if ( !related || (related !== target && !jQuery.contains( target, related )) ) { |
|
4994 |
event.type = handleObj.origType; |
|
4995 |
ret = handleObj.handler.apply( this, arguments ); |
|
4996 |
event.type = fix; |
|
4997 |
} |
|
4998 |
return ret; |
|
4999 |
} |
|
5000 |
}; |
|
5001 |
}); |
|
5002 | ||
5003 |
// IE submit delegation |
|
5004 |
if ( !support.submitBubbles ) { |
|
5005 | ||
5006 |
jQuery.event.special.submit = { |
|
5007 |
setup: function() { |
|
5008 |
// Only need this for delegated form submit events |
|
5009 |
if ( jQuery.nodeName( this, "form" ) ) { |
|
5010 |
return false; |
|
5011 |
} |
|
5012 | ||
5013 |
// Lazy-add a submit handler when a descendant form may potentially be submitted |
|
5014 |
jQuery.event.add( this, "click._submit keypress._submit", function( e ) { |
|
5015 |
// Node name check avoids a VML-related crash in IE (#9807) |
|
5016 |
var elem = e.target, |
|
5017 |
form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; |
|
5018 |
if ( form && !jQuery._data( form, "submitBubbles" ) ) { |
|
5019 |
jQuery.event.add( form, "submit._submit", function( event ) { |
|
5020 |
event._submit_bubble = true; |
|
5021 |
}); |
|
5022 |
jQuery._data( form, "submitBubbles", true ); |
|
5023 |
} |
|
5024 |
}); |
|
5025 |
// return undefined since we don't need an event listener |
|
5026 |
}, |
|
5027 | ||
5028 |
postDispatch: function( event ) { |
|
5029 |
// If form was submitted by the user, bubble the event up the tree |
|
5030 |
if ( event._submit_bubble ) { |
|
5031 |
delete event._submit_bubble; |
|
5032 |
if ( this.parentNode && !event.isTrigger ) { |
|
5033 |
jQuery.event.simulate( "submit", this.parentNode, event, true ); |
|
5034 |
} |
|
5035 |
} |
|
5036 |
}, |
|
5037 | ||
5038 |
teardown: function() { |
|
5039 |
// Only need this for delegated form submit events |
|
5040 |
if ( jQuery.nodeName( this, "form" ) ) { |
|
5041 |
return false; |
|
5042 |
} |
|
5043 | ||
5044 |
// Remove delegated handlers; cleanData eventually reaps submit handlers attached above |
|
5045 |
jQuery.event.remove( this, "._submit" ); |
|
5046 |
} |
|
5047 |
}; |
|
5048 |
} |
|
5049 | ||
5050 |
// IE change delegation and checkbox/radio fix |
|
5051 |
if ( !support.changeBubbles ) { |
|
5052 | ||
5053 |
jQuery.event.special.change = { |
|
5054 | ||
5055 |
setup: function() { |
|
5056 | ||
5057 |
if ( rformElems.test( this.nodeName ) ) { |
|
5058 |
// IE doesn't fire change on a check/radio until blur; trigger it on click |
|
5059 |
// after a propertychange. Eat the blur-change in special.change.handle. |
|
5060 |
// This still fires onchange a second time for check/radio after blur. |
|
5061 |
if ( this.type === "checkbox" || this.type === "radio" ) { |
|
5062 |
jQuery.event.add( this, "propertychange._change", function( event ) { |
|
5063 |
if ( event.originalEvent.propertyName === "checked" ) { |
|
5064 |
this._just_changed = true; |
|
5065 |
} |
|
5066 |
}); |
|
5067 |
jQuery.event.add( this, "click._change", function( event ) { |
|
5068 |
if ( this._just_changed && !event.isTrigger ) { |
|
5069 |
this._just_changed = false; |
|
5070 |
} |
|
5071 |
// Allow triggered, simulated change events (#11500) |
|
5072 |
jQuery.event.simulate( "change", this, event, true ); |
|
5073 |
}); |
|
5074 |
} |
|
5075 |
return false; |
|
5076 |
} |
|
5077 |
// Delegated event; lazy-add a change handler on descendant inputs |
|
5078 |
jQuery.event.add( this, "beforeactivate._change", function( e ) { |
|
5079 |
var elem = e.target; |
|
5080 | ||
5081 |
if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { |
|
5082 |
jQuery.event.add( elem, "change._change", function( event ) { |
|
5083 |
if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { |
|
5084 |
jQuery.event.simulate( "change", this.parentNode, event, true ); |
|
5085 |
} |
|
5086 |
}); |
|
5087 |
jQuery._data( elem, "changeBubbles", true ); |
|
5088 |
} |
|
5089 |
}); |
|
5090 |
}, |
|
5091 | ||
5092 |
handle: function( event ) { |
|
5093 |
var elem = event.target; |
|
5094 | ||
5095 |
// Swallow native change events from checkbox/radio, we already triggered them above |
|
5096 |
if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { |
|
5097 |
return event.handleObj.handler.apply( this, arguments ); |
|
5098 |
} |
|
5099 |
}, |
|
5100 | ||
5101 |
teardown: function() { |
|
5102 |
jQuery.event.remove( this, "._change" ); |
|
5103 | ||
5104 |
return !rformElems.test( this.nodeName ); |
|
5105 |
} |
|
5106 |
}; |
|
5107 |
} |
|
5108 | ||
5109 |
// Create "bubbling" focus and blur events |
|
5110 |
if ( !support.focusinBubbles ) { |
|
5111 |
jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { |
|
5112 | ||
5113 |
// Attach a single capturing handler on the document while someone wants focusin/focusout |
|
5114 |
var handler = function( event ) { |
|
5115 |
jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); |
|
5116 |
}; |
|
5117 | ||
5118 |
jQuery.event.special[ fix ] = { |
|
5119 |
setup: function() { |
|
5120 |
var doc = this.ownerDocument || this, |
|
5121 |
attaches = jQuery._data( doc, fix ); |
|
5122 | ||
5123 |
if ( !attaches ) { |
|
5124 |
doc.addEventListener( orig, handler, true ); |
|
5125 |
} |
|
5126 |
jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); |
|
5127 |
}, |
|
5128 |
teardown: function() { |
|
5129 |
var doc = this.ownerDocument || this, |
|
5130 |
attaches = jQuery._data( doc, fix ) - 1; |
|
5131 | ||
5132 |
if ( !attaches ) { |
|
5133 |
doc.removeEventListener( orig, handler, true ); |
|
5134 |
jQuery._removeData( doc, fix ); |
|
5135 |
} else { |
|
5136 |
jQuery._data( doc, fix, attaches ); |
|
5137 |
} |
|
5138 |
} |
|
5139 |
}; |
|
5140 |
}); |
|
5141 |
} |
|
5142 | ||
5143 |
jQuery.fn.extend({ |
|
5144 | ||
5145 |
on: function( types, selector, data, fn, /*INTERNAL*/ one ) { |
|
5146 |
var type, origFn; |
|
5147 | ||
5148 |
// Types can be a map of types/handlers |
|
5149 |
if ( typeof types === "object" ) { |
|
5150 |
// ( types-Object, selector, data ) |
|
5151 |
if ( typeof selector !== "string" ) { |
|
5152 |
// ( types-Object, data ) |
|
5153 |
data = data || selector; |
|
5154 |
selector = undefined; |
|
5155 |
} |
|
5156 |
for ( type in types ) { |
|
5157 |
this.on( type, selector, data, types[ type ], one ); |
|
5158 |
} |
|
5159 |
return this; |
|
5160 |
} |
|
5161 | ||
5162 |
if ( data == null && fn == null ) { |
|
5163 |
// ( types, fn ) |
|
5164 |
fn = selector; |
|
5165 |
data = selector = undefined; |
|
5166 |
} else if ( fn == null ) { |
|
5167 |
if ( typeof selector === "string" ) { |
|
5168 |
// ( types, selector, fn ) |
|
5169 |
fn = data; |
|
5170 |
data = undefined; |
|
5171 |
} else { |
|
5172 |
// ( types, data, fn ) |
|
5173 |
fn = data; |
|
5174 |
data = selector; |
|
5175 |
selector = undefined; |
|
5176 |
} |
|
5177 |
} |
|
5178 |
if ( fn === false ) { |
|
5179 |
fn = returnFalse; |
|
5180 |
} else if ( !fn ) { |
|
5181 |
return this; |
|
5182 |
} |
|
5183 | ||
5184 |
if ( one === 1 ) { |
|
5185 |
origFn = fn; |
|
5186 |
fn = function( event ) { |
|
5187 |
// Can use an empty set, since event contains the info |
|
5188 |
jQuery().off( event ); |
|
5189 |
return origFn.apply( this, arguments ); |
|
5190 |
}; |
|
5191 |
// Use same guid so caller can remove using origFn |
|
5192 |
fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); |
|
5193 |
} |
|
5194 |
return this.each( function() { |
|
5195 |
jQuery.event.add( this, types, fn, data, selector ); |
|
5196 |
}); |
|
5197 |
}, |
|
5198 |
one: function( types, selector, data, fn ) { |
|
5199 |
return this.on( types, selector, data, fn, 1 ); |
|
5200 |
}, |
|
5201 |
off: function( types, selector, fn ) { |
|
5202 |
var handleObj, type; |
|
5203 |
if ( types && types.preventDefault && types.handleObj ) { |
|
5204 |
// ( event ) dispatched jQuery.Event |
|
5205 |
handleObj = types.handleObj; |
|
5206 |
jQuery( types.delegateTarget ).off( |
|
5207 |
handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, |
|
5208 |
handleObj.selector, |
|
5209 |
handleObj.handler |
|
5210 |
); |
|
5211 |
return this; |
|
5212 |
} |
|
5213 |
if ( typeof types === "object" ) { |
|
5214 |
// ( types-object [, selector] ) |
|
5215 |
for ( type in types ) { |
|
5216 |
this.off( type, selector, types[ type ] ); |
|
5217 |
} |
|
5218 |
return this; |
|
5219 |
} |
|
5220 |
if ( selector === false || typeof selector === "function" ) { |
|
5221 |
// ( types [, fn] ) |
|
5222 |
fn = selector; |
|
5223 |
selector = undefined; |
|
5224 |
} |
|
5225 |
if ( fn === false ) { |
|
5226 |
fn = returnFalse; |
|
5227 |
} |
|
5228 |
return this.each(function() { |
|
5229 |
jQuery.event.remove( this, types, fn, selector ); |
|
5230 |
}); |
|
5231 |
}, |
|
5232 | ||
5233 |
trigger: function( type, data ) { |
|
5234 |
return this.each(function() { |
|
5235 |
jQuery.event.trigger( type, data, this ); |
|
5236 |
}); |
|
5237 |
}, |
|
5238 |
triggerHandler: function( type, data ) { |
|
5239 |
var elem = this[0]; |
|
5240 |
if ( elem ) { |
|
5241 |
return jQuery.event.trigger( type, data, elem, true ); |
|
5242 |
} |
|
5243 |
} |
|
5244 |
}); |
|
5245 | ||
5246 | ||
5247 |
function createSafeFragment( document ) { |
|
5248 |
var list = nodeNames.split( "|" ), |
|
5249 |
safeFrag = document.createDocumentFragment(); |
|
5250 | ||
5251 |
if ( safeFrag.createElement ) { |
|
5252 |
while ( list.length ) { |
|
5253 |
safeFrag.createElement( |
|
5254 |
list.pop() |
|
5255 |
); |
|
5256 |
} |
|
5257 |
} |
|
5258 |
return safeFrag; |
|
5259 |
} |
|
5260 | ||
5261 |
var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + |
|
5262 |
"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", |
|
5263 |
rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, |
|
5264 |
rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), |
|
5265 |
rleadingWhitespace = /^\s+/, |
|
5266 |
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, |
|
5267 |
rtagName = /<([\w:]+)/, |
|
5268 |
rtbody = /<tbody/i, |
|
5269 |
rhtml = /<|&#?\w+;/, |
|
5270 |
rnoInnerhtml = /<(?:script|style|link)/i, |
|
5271 |
// checked="checked" or checked |
|
5272 |
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, |
|
5273 |
rscriptType = /^$|\/(?:java|ecma)script/i, |
|
5274 |
rscriptTypeMasked = /^true\/(.*)/, |
|
5275 |
rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, |
|
5276 | ||
5277 |
// We have to close these tags to support XHTML (#13200) |
|
5278 |
wrapMap = { |
|
5279 |
option: [ 1, "<select multiple='multiple'>", "</select>" ], |
|
5280 |
legend: [ 1, "<fieldset>", "</fieldset>" ], |
|
5281 |
area: [ 1, "<map>", "</map>" ], |
|
5282 |
param: [ 1, "<object>", "</object>" ], |
|
5283 |
thead: [ 1, "<table>", "</table>" ], |
|
5284 |
tr: [ 2, "<table><tbody>", "</tbody></table>" ], |
|
5285 |
col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], |
|
5286 |
td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], |
|
5287 | ||
5288 |
// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, |
|
5289 |
// unless wrapped in a div with non-breaking characters in front of it. |
|
5290 |
_default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ] |
|
5291 |
}, |
|
5292 |
safeFragment = createSafeFragment( document ), |
|
5293 |
fragmentDiv = safeFragment.appendChild( document.createElement("div") ); |
|
5294 | ||
5295 |
wrapMap.optgroup = wrapMap.option; |
|
5296 |
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; |
|
5297 |
wrapMap.th = wrapMap.td; |
|
5298 | ||
5299 |
function getAll( context, tag ) { |
|
5300 |
var elems, elem, |
|
5301 |
i = 0, |
|
5302 |
found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || "*" ) : |
|
5303 |
typeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || "*" ) : |
|
5304 |
undefined; |
|
5305 | ||
5306 |
if ( !found ) { |
|
5307 |
for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { |
|
5308 |
if ( !tag || jQuery.nodeName( elem, tag ) ) { |
|
5309 |
found.push( elem ); |
|
5310 |
} else { |
|
5311 |
jQuery.merge( found, getAll( elem, tag ) ); |
|
5312 |
} |
|
5313 |
} |
|
5314 |
} |
|
5315 | ||
5316 |
return tag === undefined || tag && jQuery.nodeName( context, tag ) ? |
|
5317 |
jQuery.merge( [ context ], found ) : |
|
5318 |
found; |
|
5319 |
} |
|
5320 | ||
5321 |
// Used in buildFragment, fixes the defaultChecked property |
|
5322 |
function fixDefaultChecked( elem ) { |
|
5323 |
if ( rcheckableType.test( elem.type ) ) { |
|
5324 |
elem.defaultChecked = elem.checked; |
|
5325 |
} |
|
5326 |
} |
|
5327 | ||
5328 |
// Support: IE<8 |
|
5329 |
// Manipulating tables requires a tbody |
|
5330 |
function manipulationTarget( elem, content ) { |
|
5331 |
return jQuery.nodeName( elem, "table" ) && |
|
5332 |
jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? |
|
5333 | ||
5334 |
elem.getElementsByTagName("tbody")[0] || |
|
5335 |
elem.appendChild( elem.ownerDocument.createElement("tbody") ) : |
|
5336 |
elem; |
|
5337 |
} |
|
5338 | ||
5339 |
// Replace/restore the type attribute of script elements for safe DOM manipulation |
|
5340 |
function disableScript( elem ) { |
|
5341 |
elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; |
|
5342 |
return elem; |
|
5343 |
} |
|
5344 |
function restoreScript( elem ) { |
|
5345 |
var match = rscriptTypeMasked.exec( elem.type ); |
|
5346 |
if ( match ) { |
|
5347 |
elem.type = match[1]; |
|
5348 |
} else { |
|
5349 |
elem.removeAttribute("type"); |
|
5350 |
} |
|
5351 |
return elem; |
|
5352 |
} |
|
5353 | ||
5354 |
// Mark scripts as having already been evaluated |
|
5355 |
function setGlobalEval( elems, refElements ) { |
|
5356 |
var elem, |
|
5357 |
i = 0; |
|
5358 |
for ( ; (elem = elems[i]) != null; i++ ) { |
|
5359 |
jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); |
|
5360 |
} |
|
5361 |
} |
|
5362 | ||
5363 |
function cloneCopyEvent( src, dest ) { |
|
5364 | ||
5365 |
if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { |
|
5366 |
return; |
|
5367 |
} |
|
5368 | ||
5369 |
var type, i, l, |
|
5370 |
oldData = jQuery._data( src ), |
|
5371 |
curData = jQuery._data( dest, oldData ), |
|
5372 |
events = oldData.events; |
|
5373 | ||
5374 |
if ( events ) { |
|
5375 |
delete curData.handle; |
|
5376 |
curData.events = {}; |
|
5377 | ||
5378 |
for ( type in events ) { |
|
5379 |
for ( i = 0, l = events[ type ].length; i < l; i++ ) { |
|
5380 |
jQuery.event.add( dest, type, events[ type ][ i ] ); |
|
5381 |
} |
|
5382 |
} |
|
5383 |
} |
|
5384 | ||
5385 |
// make the cloned public data object a copy from the original |
|
5386 |
if ( curData.data ) { |
|
5387 |
curData.data = jQuery.extend( {}, curData.data ); |
|
5388 |
} |
|
5389 |
} |
|
5390 | ||
5391 |
function fixCloneNodeIssues( src, dest ) { |
|
5392 |
var nodeName, e, data; |
|
5393 | ||
5394 |
// We do not need to do anything for non-Elements |
|
5395 |
if ( dest.nodeType !== 1 ) { |
|
5396 |
return; |
|
5397 |
} |
|
5398 | ||
5399 |
nodeName = dest.nodeName.toLowerCase(); |
|
5400 | ||
5401 |
// IE6-8 copies events bound via attachEvent when using cloneNode. |
|
5402 |
if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { |
|
5403 |
data = jQuery._data( dest ); |
|
5404 | ||
5405 |
for ( e in data.events ) { |
|
5406 |
jQuery.removeEvent( dest, e, data.handle ); |
|
5407 |
} |
|
5408 | ||
5409 |
// Event data gets referenced instead of copied if the expando gets copied too |
|
5410 |
dest.removeAttribute( jQuery.expando ); |
|
5411 |
} |
|
5412 | ||
5413 |
// IE blanks contents when cloning scripts, and tries to evaluate newly-set text |
|
5414 |
if ( nodeName === "script" && dest.text !== src.text ) { |
|
5415 |
disableScript( dest ).text = src.text; |
|
5416 |
restoreScript( dest ); |
|
5417 | ||
5418 |
// IE6-10 improperly clones children of object elements using classid. |
|
5419 |
// IE10 throws NoModificationAllowedError if parent is null, #12132. |
|
5420 |
} else if ( nodeName === "object" ) { |
|
5421 |
if ( dest.parentNode ) { |
|
5422 |
dest.outerHTML = src.outerHTML; |
|
5423 |
} |
|
5424 | ||
5425 |
// This path appears unavoidable for IE9. When cloning an object |
|
5426 |
// element in IE9, the outerHTML strategy above is not sufficient. |
|
5427 |
// If the src has innerHTML and the destination does not, |
|
5428 |
// copy the src.innerHTML into the dest.innerHTML. #10324 |
|
5429 |
if ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { |
|
5430 |
dest.innerHTML = src.innerHTML; |
|
5431 |
} |
|
5432 | ||
5433 |
} else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { |
|
5434 |
// IE6-8 fails to persist the checked state of a cloned checkbox |
|
5435 |
// or radio button. Worse, IE6-7 fail to give the cloned element |
|
5436 |
// a checked appearance if the defaultChecked value isn't also set |
|
5437 | ||
5438 |
dest.defaultChecked = dest.checked = src.checked; |
|
5439 | ||
5440 |
// IE6-7 get confused and end up setting the value of a cloned |
|
5441 |
// checkbox/radio button to an empty string instead of "on" |
|
5442 |
if ( dest.value !== src.value ) { |
|
5443 |
dest.value = src.value; |
|
5444 |
} |
|
5445 | ||
5446 |
// IE6-8 fails to return the selected option to the default selected |
|
5447 |
// state when cloning options |
|
5448 |
} else if ( nodeName === "option" ) { |
|
5449 |
dest.defaultSelected = dest.selected = src.defaultSelected; |
|
5450 | ||
5451 |
// IE6-8 fails to set the defaultValue to the correct value when |
|
5452 |
// cloning other types of input fields |
|
5453 |
} else if ( nodeName === "input" || nodeName === "textarea" ) { |
|
5454 |
dest.defaultValue = src.defaultValue; |
|
5455 |
} |
|
5456 |
} |
|
5457 | ||
5458 |
jQuery.extend({ |
|
5459 |
clone: function( elem, dataAndEvents, deepDataAndEvents ) { |
|
5460 |
var destElements, node, clone, i, srcElements, |
|
5461 |
inPage = jQuery.contains( elem.ownerDocument, elem ); |
|
5462 | ||
5463 |
if ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { |
|
5464 |
clone = elem.cloneNode( true ); |
|
5465 | ||
5466 |
// IE<=8 does not properly clone detached, unknown element nodes |
|
5467 |
} else { |
|
5468 |
fragmentDiv.innerHTML = elem.outerHTML; |
|
5469 |
fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); |
|
5470 |
} |
|
5471 | ||
5472 |
if ( (!support.noCloneEvent || !support.noCloneChecked) && |
|
5473 |
(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { |
|
5474 | ||
5475 |
// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 |
|
5476 |
destElements = getAll( clone ); |
|
5477 |
srcElements = getAll( elem ); |
|
5478 | ||
5479 |
// Fix all IE cloning issues |
|
5480 |
for ( i = 0; (node = srcElements[i]) != null; ++i ) { |
|
5481 |
// Ensure that the destination node is not null; Fixes #9587 |
|
5482 |
if ( destElements[i] ) { |
|
5483 |
fixCloneNodeIssues( node, destElements[i] ); |
|
5484 |
} |
|
5485 |
} |
|
5486 |
} |
|
5487 | ||
5488 |
// Copy the events from the original to the clone |
|
5489 |
if ( dataAndEvents ) { |
|
5490 |
if ( deepDataAndEvents ) { |
|
5491 |
srcElements = srcElements || getAll( elem ); |
|
5492 |
destElements = destElements || getAll( clone ); |
|
5493 | ||
5494 |
for ( i = 0; (node = srcElements[i]) != null; i++ ) { |
|
5495 |
cloneCopyEvent( node, destElements[i] ); |
|
5496 |
} |
|
5497 |
} else { |
|
5498 |
cloneCopyEvent( elem, clone ); |
|
5499 |
} |
|
5500 |
} |
|
5501 | ||
5502 |
// Preserve script evaluation history |
|
5503 |
destElements = getAll( clone, "script" ); |
|
5504 |
if ( destElements.length > 0 ) { |
|
5505 |
setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); |
|
5506 |
} |
|
5507 | ||
5508 |
destElements = srcElements = node = null; |
|
5509 | ||
5510 |
// Return the cloned set |
|
5511 |
return clone; |
|
5512 |
}, |
|
5513 | ||
5514 |
buildFragment: function( elems, context, scripts, selection ) { |
|
5515 |
var j, elem, contains, |
|
5516 |
tmp, tag, tbody, wrap, |
|
5517 |
l = elems.length, |
|
5518 | ||
5519 |
// Ensure a safe fragment |
|
5520 |
safe = createSafeFragment( context ), |
|
5521 | ||
5522 |
nodes = [], |
|
5523 |
i = 0; |
|
5524 | ||
5525 |
for ( ; i < l; i++ ) { |
|
5526 |
elem = elems[ i ]; |
|
5527 | ||
5528 |
if ( elem || elem === 0 ) { |
|
5529 | ||
5530 |
// Add nodes directly |
|
5531 |
if ( jQuery.type( elem ) === "object" ) { |
|
5532 |
jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); |
|
5533 | ||
5534 |
// Convert non-html into a text node |
|
5535 |
} else if ( !rhtml.test( elem ) ) { |
|
5536 |
nodes.push( context.createTextNode( elem ) ); |
|
5537 | ||
5538 |
// Convert html into DOM nodes |
|
5539 |
} else { |
|
5540 |
tmp = tmp || safe.appendChild( context.createElement("div") ); |
|
5541 | ||
5542 |
// Deserialize a standard representation |
|
5543 |
tag = (rtagName.exec( elem ) || [ "", "" ])[ 1 ].toLowerCase(); |
|
5544 |
wrap = wrapMap[ tag ] || wrapMap._default; |
|
5545 | ||
5546 |
tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2]; |
|
5547 | ||
5548 |
// Descend through wrappers to the right content |
|
5549 |
j = wrap[0]; |
|
5550 |
while ( j-- ) { |
|
5551 |
tmp = tmp.lastChild; |
|
5552 |
} |
|
5553 | ||
5554 |
// Manually add leading whitespace removed by IE |
|
5555 |
if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { |
|
5556 |
nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); |
|
5557 |
} |
|
5558 | ||
5559 |
// Remove IE's autoinserted <tbody> from table fragments |
|
5560 |
if ( !support.tbody ) { |
|
5561 | ||
5562 |
// String was a <table>, *may* have spurious <tbody> |
|
5563 |
elem = tag === "table" && !rtbody.test( elem ) ? |
|
5564 |
tmp.firstChild : |
|
5565 | ||
5566 |
// String was a bare <thead> or <tfoot> |
|
5567 |
wrap[1] === "<table>" && !rtbody.test( elem ) ? |
|
5568 |
tmp : |
|
5569 |
0; |
|
5570 | ||
5571 |
j = elem && elem.childNodes.length; |
|
5572 |
while ( j-- ) { |
|
5573 |
if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { |
|
5574 |
elem.removeChild( tbody ); |
|
5575 |
} |
|
5576 |
} |
|
5577 |
} |
|
5578 | ||
5579 |
jQuery.merge( nodes, tmp.childNodes ); |
|
5580 | ||
5581 |
// Fix #12392 for WebKit and IE > 9 |
|
5582 |
tmp.textContent = ""; |
|
5583 | ||
5584 |
// Fix #12392 for oldIE |
|
5585 |
while ( tmp.firstChild ) { |
|
5586 |
tmp.removeChild( tmp.firstChild ); |
|
5587 |
} |
|
5588 | ||
5589 |
// Remember the top-level container for proper cleanup |
|
5590 |
tmp = safe.lastChild; |
|
5591 |
} |
|
5592 |
} |
|
5593 |
} |
|
5594 | ||
5595 |
// Fix #11356: Clear elements from fragment |
|
5596 |
if ( tmp ) { |
|
5597 |
safe.removeChild( tmp ); |
|
5598 |
} |
|
5599 | ||
5600 |
// Reset defaultChecked for any radios and checkboxes |
|
5601 |
// about to be appended to the DOM in IE 6/7 (#8060) |
|
5602 |
if ( !support.appendChecked ) { |
|
5603 |
jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); |
|
5604 |
} |
|
5605 | ||
5606 |
i = 0; |
|
5607 |
while ( (elem = nodes[ i++ ]) ) { |
|
5608 | ||
5609 |
// #4087 - If origin and destination elements are the same, and this is |
|
5610 |
// that element, do not do anything |
|
5611 |
if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { |
|
5612 |
continue; |
|
5613 |
} |
|
5614 | ||
5615 |
contains = jQuery.contains( elem.ownerDocument, elem ); |
|
5616 | ||
5617 |
// Append to fragment |
|
5618 |
tmp = getAll( safe.appendChild( elem ), "script" ); |
|
5619 | ||
5620 |
// Preserve script evaluation history |
|
5621 |
if ( contains ) { |
|
5622 |
setGlobalEval( tmp ); |
|
5623 |
} |
|
5624 | ||
5625 |
// Capture executables |
|
5626 |
if ( scripts ) { |
|
5627 |
j = 0; |
|
5628 |
while ( (elem = tmp[ j++ ]) ) { |
|
5629 |
if ( rscriptType.test( elem.type || "" ) ) { |
|
5630 |
scripts.push( elem ); |
|
5631 |
} |
|
5632 |
} |
|
5633 |
} |
|
5634 |
} |
|
5635 | ||
5636 |
tmp = null; |
|
5637 | ||
5638 |
return safe; |
|
5639 |
}, |
|
5640 | ||
5641 |
cleanData: function( elems, /* internal */ acceptData ) { |
|
5642 |
var elem, type, id, data, |
|
5643 |
i = 0, |
|
5644 |
internalKey = jQuery.expando, |
|
5645 |
cache = jQuery.cache, |
|
5646 |
deleteExpando = support.deleteExpando, |
|
5647 |
special = jQuery.event.special; |
|
5648 | ||
5649 |
for ( ; (elem = elems[i]) != null; i++ ) { |
|
5650 |
if ( acceptData || jQuery.acceptData( elem ) ) { |
|
5651 | ||
5652 |
id = elem[ internalKey ]; |
|
5653 |
data = id && cache[ id ]; |
|
5654 | ||
5655 |
if ( data ) { |
|
5656 |
if ( data.events ) { |
|
5657 |
for ( type in data.events ) { |
|
5658 |
if ( special[ type ] ) { |
|
5659 |
jQuery.event.remove( elem, type ); |
|
5660 | ||
5661 |
// This is a shortcut to avoid jQuery.event.remove's overhead |
|
5662 |
} else { |
|
5663 |
jQuery.removeEvent( elem, type, data.handle ); |
|
5664 |
} |
|
5665 |
} |
|
5666 |
} |
|
5667 | ||
5668 |
// Remove cache only if it was not already removed by jQuery.event.remove |
|
5669 |
if ( cache[ id ] ) { |
|
5670 | ||
5671 |
delete cache[ id ]; |
|
5672 | ||
5673 |
// IE does not allow us to delete expando properties from nodes, |
|
5674 |
// nor does it have a removeAttribute function on Document nodes; |
|
5675 |
// we must handle all of these cases |
|
5676 |
if ( deleteExpando ) { |
|
5677 |
delete elem[ internalKey ]; |
|
5678 | ||
5679 |
} else if ( typeof elem.removeAttribute !== strundefined ) { |
|
5680 |
elem.removeAttribute( internalKey ); |
|
5681 | ||
5682 |
} else { |
|
5683 |
elem[ internalKey ] = null; |
|
5684 |
} |
|
5685 | ||
5686 |
deletedIds.push( id ); |
|
5687 |
} |
|
5688 |
} |
|
5689 |
} |
|
5690 |
} |
|
5691 |
} |
|
5692 |
}); |
|
5693 | ||
5694 |
jQuery.fn.extend({ |
|
5695 |
text: function( value ) { |
|
5696 |
return access( this, function( value ) { |
|
5697 |
return value === undefined ? |
|
5698 |
jQuery.text( this ) : |
|
5699 |
this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); |
|
5700 |
}, null, value, arguments.length ); |
|
5701 |
}, |
|
5702 | ||
5703 |
append: function() { |
|
5704 |
return this.domManip( arguments, function( elem ) { |
|
5705 |
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { |
|
5706 |
var target = manipulationTarget( this, elem ); |
|
5707 |
target.appendChild( elem ); |
|
5708 |
} |
|
5709 |
}); |
|
5710 |
}, |
|
5711 | ||
5712 |
prepend: function() { |
|
5713 |
return this.domManip( arguments, function( elem ) { |
|
5714 |
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { |
|
5715 |
var target = manipulationTarget( this, elem ); |
|
5716 |
target.insertBefore( elem, target.firstChild ); |
|
5717 |
} |
|
5718 |
}); |
|
5719 |
}, |
|
5720 | ||
5721 |
before: function() { |
|
5722 |
return this.domManip( arguments, function( elem ) { |
|
5723 |
if ( this.parentNode ) { |
|
5724 |
this.parentNode.insertBefore( elem, this ); |
|
5725 |
} |
|
5726 |
}); |
|
5727 |
}, |
|
5728 | ||
5729 |
after: function() { |
|
5730 |
return this.domManip( arguments, function( elem ) { |
|
5731 |
if ( this.parentNode ) { |
|
5732 |
this.parentNode.insertBefore( elem, this.nextSibling ); |
|
5733 |
} |
|
5734 |
}); |
|
5735 |
}, |
|
5736 | ||
5737 |
remove: function( selector, keepData /* Internal Use Only */ ) { |
|
5738 |
var elem, |
|
5739 |
elems = selector ? jQuery.filter( selector, this ) : this, |
|
5740 |
i = 0; |
|
5741 | ||
5742 |
for ( ; (elem = elems[i]) != null; i++ ) { |
|
5743 | ||
5744 |
if ( !keepData && elem.nodeType === 1 ) { |
|
5745 |
jQuery.cleanData( getAll( elem ) ); |
|
5746 |
} |
|
5747 | ||
5748 |
if ( elem.parentNode ) { |
|
5749 |
if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { |
|
5750 |
setGlobalEval( getAll( elem, "script" ) ); |
|
5751 |
} |
|
5752 |
elem.parentNode.removeChild( elem ); |
|
5753 |
} |
|
5754 |
} |
|
5755 | ||
5756 |
return this; |
|
5757 |
}, |
|
5758 | ||
5759 |
empty: function() { |
|
5760 |
var elem, |
|
5761 |
i = 0; |
|
5762 | ||
5763 |
for ( ; (elem = this[i]) != null; i++ ) { |
|
5764 |
// Remove element nodes and prevent memory leaks |
|
5765 |
if ( elem.nodeType === 1 ) { |
|
5766 |
jQuery.cleanData( getAll( elem, false ) ); |
|
5767 |
} |
|
5768 | ||
5769 |
// Remove any remaining nodes |
|
5770 |
while ( elem.firstChild ) { |
|
5771 |
elem.removeChild( elem.firstChild ); |
|
5772 |
} |
|
5773 | ||
5774 |
// If this is a select, ensure that it displays empty (#12336) |
|
5775 |
// Support: IE<9 |
|
5776 |
if ( elem.options && jQuery.nodeName( elem, "select" ) ) { |
|
5777 |
elem.options.length = 0; |
|
5778 |
} |
|
5779 |
} |
|
5780 | ||
5781 |
return this; |
|
5782 |
}, |
|
5783 | ||
5784 |
clone: function( dataAndEvents, deepDataAndEvents ) { |
|
5785 |
dataAndEvents = dataAndEvents == null ? false : dataAndEvents; |
|
5786 |
deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; |
|
5787 | ||
5788 |
return this.map(function() { |
|
5789 |
return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); |
|
5790 |
}); |
|
5791 |
}, |
|
5792 | ||
5793 |
html: function( value ) { |
|
5794 |
return access( this, function( value ) { |
|
5795 |
var elem = this[ 0 ] || {}, |
|
5796 |
i = 0, |
|
5797 |
l = this.length; |
|
5798 | ||
5799 |
if ( value === undefined ) { |
|
5800 |
return elem.nodeType === 1 ? |
|
5801 |
elem.innerHTML.replace( rinlinejQuery, "" ) : |
|
5802 |
undefined; |
|
5803 |
} |
|
5804 | ||
5805 |
// See if we can take a shortcut and just use innerHTML |
|
5806 |
if ( typeof value === "string" && !rnoInnerhtml.test( value ) && |
|
5807 |
( support.htmlSerialize || !rnoshimcache.test( value ) ) && |
|
5808 |
( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && |
|
5809 |
!wrapMap[ (rtagName.exec( value ) || [ "", "" ])[ 1 ].toLowerCase() ] ) { |
|
5810 | ||
5811 |
value = value.replace( rxhtmlTag, "<$1></$2>" ); |
|
5812 | ||
5813 |
try { |
|
5814 |
for (; i < l; i++ ) { |
|
5815 |
// Remove element nodes and prevent memory leaks |
|
5816 |
elem = this[i] || {}; |
|
5817 |
if ( elem.nodeType === 1 ) { |
|
5818 |
jQuery.cleanData( getAll( elem, false ) ); |
|
5819 |
elem.innerHTML = value; |
|
5820 |
} |
|
5821 |
} |
|
5822 | ||
5823 |
elem = 0; |
|
5824 | ||
5825 |
// If using innerHTML throws an exception, use the fallback method |
|
5826 |
} catch(e) {} |
|
5827 |
} |
|
5828 | ||
5829 |
if ( elem ) { |
|
5830 |
this.empty().append( value ); |
|
5831 |
} |
|
5832 |
}, null, value, arguments.length ); |
|
5833 |
}, |
|
5834 | ||
5835 |
replaceWith: function() { |
|
5836 |
var arg = arguments[ 0 ]; |
|
5837 | ||
5838 |
// Make the changes, replacing each context element with the new content |
|
5839 |
this.domManip( arguments, function( elem ) { |
|
5840 |
arg = this.parentNode; |
|
5841 | ||
5842 |
jQuery.cleanData( getAll( this ) ); |
|
5843 | ||
5844 |
if ( arg ) { |
|
5845 |
arg.replaceChild( elem, this ); |
|
5846 |
} |
|
5847 |
}); |
|
5848 | ||
5849 |
// Force removal if there was no new content (e.g., from empty arguments) |
|
5850 |
return arg && (arg.length || arg.nodeType) ? this : this.remove(); |
|
5851 |
}, |
|
5852 | ||
5853 |
detach: function( selector ) { |
|
5854 |
return this.remove( selector, true ); |
|
5855 |
}, |
|
5856 | ||
5857 |
domManip: function( args, callback ) { |
|
5858 | ||
5859 |
// Flatten any nested arrays |
|
5860 |
args = concat.apply( [], args ); |
|
5861 | ||
5862 |
var first, node, hasScripts, |
|
5863 |
scripts, doc, fragment, |
|
5864 |
i = 0, |
|
5865 |
l = this.length, |
|
5866 |
set = this, |
|
5867 |
iNoClone = l - 1, |
|
5868 |
value = args[0], |
|
5869 |
isFunction = jQuery.isFunction( value ); |
|
5870 | ||
5871 |
// We can't cloneNode fragments that contain checked, in WebKit |
|
5872 |
if ( isFunction || |
|
5873 |
( l > 1 && typeof value === "string" && |
|
5874 |
!support.checkClone && rchecked.test( value ) ) ) { |
|
5875 |
return this.each(function( index ) { |
|
5876 |
var self = set.eq( index ); |
|
5877 |
if ( isFunction ) { |
|
5878 |
args[0] = value.call( this, index, self.html() ); |
|
5879 |
} |
|
5880 |
self.domManip( args, callback ); |
|
5881 |
}); |
|
5882 |
} |
|
5883 | ||
5884 |
if ( l ) { |
|
5885 |
fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); |
|
5886 |
first = fragment.firstChild; |
|
5887 | ||
5888 |
if ( fragment.childNodes.length === 1 ) { |
|
5889 |
fragment = first; |
|
5890 |
} |
|
5891 | ||
5892 |
if ( first ) { |
|
5893 |
scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); |
|
5894 |
hasScripts = scripts.length; |
|
5895 | ||
5896 |
// Use the original fragment for the last item instead of the first because it can end up |
|
5897 |
// being emptied incorrectly in certain situations (#8070). |
|
5898 |
for ( ; i < l; i++ ) { |
|
5899 |
node = fragment; |
|
5900 | ||
5901 |
if ( i !== iNoClone ) { |
|
5902 |
node = jQuery.clone( node, true, true ); |
|
5903 | ||
5904 |
// Keep references to cloned scripts for later restoration |
|
5905 |
if ( hasScripts ) { |
|
5906 |
jQuery.merge( scripts, getAll( node, "script" ) ); |
|
5907 |
} |
|
5908 |
} |
|
5909 | ||
5910 |
callback.call( this[i], node, i ); |
|
5911 |
} |
|
5912 | ||
5913 |
if ( hasScripts ) { |
|
5914 |
doc = scripts[ scripts.length - 1 ].ownerDocument; |
|
5915 | ||
5916 |
// Reenable scripts |
|
5917 |
jQuery.map( scripts, restoreScript ); |
|
5918 | ||
5919 |
// Evaluate executable scripts on first document insertion |
|
5920 |
for ( i = 0; i < hasScripts; i++ ) { |
|
5921 |
node = scripts[ i ]; |
|
5922 |
if ( rscriptType.test( node.type || "" ) && |
|
5923 |
!jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { |
|
5924 | ||
5925 |
if ( node.src ) { |
|
5926 |
// Optional AJAX dependency, but won't run scripts if not present |
|
5927 |
if ( jQuery._evalUrl ) { |
|
5928 |
jQuery._evalUrl( node.src ); |
|
5929 |
} |
|
5930 |
} else { |
|
5931 |
jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); |
|
5932 |
} |
|
5933 |
} |
|
5934 |
} |
|
5935 |
} |
|
5936 | ||
5937 |
// Fix #11809: Avoid leaking memory |
|
5938 |
fragment = first = null; |
|
5939 |
} |
|
5940 |
} |
|
5941 | ||
5942 |
return this; |
|
5943 |
} |
|
5944 |
}); |
|
5945 | ||
5946 |
jQuery.each({ |
|
5947 |
appendTo: "append", |
|
5948 |
prependTo: "prepend", |
|
5949 |
insertBefore: "before", |
|
5950 |
insertAfter: "after", |
|
5951 |
replaceAll: "replaceWith" |
|
5952 |
}, function( name, original ) { |
|
5953 |
jQuery.fn[ name ] = function( selector ) { |
|
5954 |
var elems, |
|
5955 |
i = 0, |
|
5956 |
ret = [], |
|
5957 |
insert = jQuery( selector ), |
|
5958 |
last = insert.length - 1; |
|
5959 | ||
5960 |
for ( ; i <= last; i++ ) { |
|
5961 |
elems = i === last ? this : this.clone(true); |
|
5962 |
jQuery( insert[i] )[ original ]( elems ); |
|
5963 | ||
5964 |
// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() |
|
5965 |
push.apply( ret, elems.get() ); |
|
5966 |
} |
|
5967 | ||
5968 |
return this.pushStack( ret ); |
|
5969 |
}; |
|
5970 |
}); |
|
5971 | ||
5972 | ||
5973 |
var iframe, |
|
5974 |
elemdisplay = {}; |
|
5975 | ||
5976 |
/** |
|
5977 |
* Retrieve the actual display of a element |
|
5978 |
* @param {String} name nodeName of the element |
|
5979 |
* @param {Object} doc Document object |
|
5980 |
*/ |
|
5981 |
// Called only from within defaultDisplay |
|
5982 |
function actualDisplay( name, doc ) { |
|
5983 |
var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), |
|
5984 | ||
5985 |
// getDefaultComputedStyle might be reliably used only on attached element |
|
5986 |
display = window.getDefaultComputedStyle ? |
|
5987 | ||
5988 |
// Use of this method is a temporary fix (more like optmization) until something better comes along, |
|
5989 |
// since it was removed from specification and supported only in FF |
|
5990 |
window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" ); |
|
5991 | ||
5992 |
// We don't have any data stored on the element, |
|
5993 |
// so use "detach" method as fast way to get rid of the element |
|
5994 |
elem.detach(); |
|
5995 | ||
5996 |
return display; |
|
5997 |
} |
|
5998 | ||
5999 |
/** |
|
6000 |
* Try to determine the default display value of an element |
|
6001 |
* @param {String} nodeName |
|
6002 |
*/ |
|
6003 |
function defaultDisplay( nodeName ) { |
|
6004 |
var doc = document, |
|
6005 |
display = elemdisplay[ nodeName ]; |
|
6006 | ||
6007 |
if ( !display ) { |
|
6008 |
display = actualDisplay( nodeName, doc ); |
|
6009 | ||
6010 |
// If the simple way fails, read from inside an iframe |
|
6011 |
if ( display === "none" || !display ) { |
|
6012 | ||
6013 |
// Use the already-created iframe if possible |
|
6014 |
iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); |
|
6015 | ||
6016 |
// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse |
|
6017 |
doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document; |
|
6018 | ||
6019 |
// Support: IE |
|
6020 |
doc.write(); |
|
6021 |
doc.close(); |
|
6022 | ||
6023 |
display = actualDisplay( nodeName, doc ); |
|
6024 |
iframe.detach(); |
|
6025 |
} |
|
6026 | ||
6027 |
// Store the correct default display |
|
6028 |
elemdisplay[ nodeName ] = display; |
|
6029 |
} |
|
6030 | ||
6031 |
return display; |
|
6032 |
} |
|
6033 | ||
6034 | ||
6035 |
(function() { |
|
6036 |
var a, shrinkWrapBlocksVal, |
|
6037 |
div = document.createElement( "div" ), |
|
6038 |
divReset = |
|
6039 |
"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" + |
|
6040 |
"display:block;padding:0;margin:0;border:0"; |
|
6041 | ||
6042 |
// Setup |
|
6043 |
div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; |
|
6044 |
a = div.getElementsByTagName( "a" )[ 0 ]; |
|
6045 | ||
6046 |
a.style.cssText = "float:left;opacity:.5"; |
|
6047 | ||
6048 |
// Make sure that element opacity exists |
|
6049 |
// (IE uses filter instead) |
|
6050 |
// Use a regex to work around a WebKit issue. See #5145 |
|
6051 |
support.opacity = /^0.5/.test( a.style.opacity ); |
|
6052 | ||
6053 |
// Verify style float existence |
|
6054 |
// (IE uses styleFloat instead of cssFloat) |
|
6055 |
support.cssFloat = !!a.style.cssFloat; |
|
6056 | ||
6057 |
div.style.backgroundClip = "content-box"; |
|
6058 |
div.cloneNode( true ).style.backgroundClip = ""; |
|
6059 |
support.clearCloneStyle = div.style.backgroundClip === "content-box"; |
|
6060 | ||
6061 |
// Null elements to avoid leaks in IE. |
|
6062 |
a = div = null; |
|
6063 | ||
6064 |
support.shrinkWrapBlocks = function() { |
|
6065 |
var body, container, div, containerStyles; |
|
6066 | ||
6067 |
if ( shrinkWrapBlocksVal == null ) { |
|
6068 |
body = document.getElementsByTagName( "body" )[ 0 ]; |
|
6069 |
if ( !body ) { |
|
6070 |
// Test fired too early or in an unsupported environment, exit. |
|
6071 |
return; |
|
6072 |
} |
|
6073 | ||
6074 |
containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px"; |
|
6075 |
container = document.createElement( "div" ); |
|
6076 |
div = document.createElement( "div" ); |
|
6077 | ||
6078 |
body.appendChild( container ).appendChild( div ); |
|
6079 | ||
6080 |
// Will be changed later if needed. |
|
6081 |
shrinkWrapBlocksVal = false; |
|
6082 | ||
6083 |
if ( typeof div.style.zoom !== strundefined ) { |
|
6084 |
// Support: IE6 |
|
6085 |
// Check if elements with layout shrink-wrap their children |
|
6086 |
div.style.cssText = divReset + ";width:1px;padding:1px;zoom:1"; |
|
6087 |
div.innerHTML = "<div></div>"; |
|
6088 |
div.firstChild.style.width = "5px"; |
|
6089 |
shrinkWrapBlocksVal = div.offsetWidth !== 3; |
|
6090 |
} |
|
6091 | ||
6092 |
body.removeChild( container ); |
|
6093 | ||
6094 |
// Null elements to avoid leaks in IE. |
|
6095 |
body = container = div = null; |
|
6096 |
} |
|
6097 | ||
6098 |
return shrinkWrapBlocksVal; |
|
6099 |
}; |
|
6100 | ||
6101 |
})(); |
|
6102 |
var rmargin = (/^margin/); |
|
6103 | ||
6104 |
var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); |
|
6105 | ||
6106 | ||
6107 | ||
6108 |
var getStyles, curCSS, |
|
6109 |
rposition = /^(top|right|bottom|left)$/; |
|
6110 | ||
6111 |
if ( window.getComputedStyle ) { |
|
6112 |
getStyles = function( elem ) { |
|
6113 |
return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); |
|
6114 |
}; |
|
6115 | ||
6116 |
curCSS = function( elem, name, computed ) { |
|
6117 |
var width, minWidth, maxWidth, ret, |
|
6118 |
style = elem.style; |
|
6119 | ||
6120 |
computed = computed || getStyles( elem ); |
|
6121 | ||
6122 |
// getPropertyValue is only needed for .css('filter') in IE9, see #12537 |
|
6123 |
ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined; |
|
6124 | ||
6125 |
if ( computed ) { |
|
6126 | ||
6127 |
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { |
|
6128 |
ret = jQuery.style( elem, name ); |
|
6129 |
} |
|
6130 | ||
6131 |
// A tribute to the "awesome hack by Dean Edwards" |
|
6132 |
// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right |
|
6133 |
// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels |
|
6134 |
// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values |
|
6135 |
if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { |
|
6136 | ||
6137 |
// Remember the original values |
|
6138 |
width = style.width; |
|
6139 |
minWidth = style.minWidth; |
|
6140 |
maxWidth = style.maxWidth; |
|
6141 | ||
6142 |
// Put in the new values to get a computed value out |
|
6143 |
style.minWidth = style.maxWidth = style.width = ret; |
|
6144 |
ret = computed.width; |
|
6145 | ||
6146 |
// Revert the changed values |
|
6147 |
style.width = width; |
|
6148 |
style.minWidth = minWidth; |
|
6149 |
style.maxWidth = maxWidth; |
|
6150 |
} |
|
6151 |
} |
|
6152 | ||
6153 |
// Support: IE |
|
6154 |
// IE returns zIndex value as an integer. |
|
6155 |
return ret === undefined ? |
|
6156 |
ret : |
|
6157 |
ret + ""; |
|
6158 |
}; |
|
6159 |
} else if ( document.documentElement.currentStyle ) { |
|
6160 |
getStyles = function( elem ) { |
|
6161 |
return elem.currentStyle; |
|
6162 |
}; |
|
6163 | ||
6164 |
curCSS = function( elem, name, computed ) { |
|
6165 |
var left, rs, rsLeft, ret, |
|
6166 |
style = elem.style; |
|
6167 | ||
6168 |
computed = computed || getStyles( elem ); |
|
6169 |
ret = computed ? computed[ name ] : undefined; |
|
6170 | ||
6171 |
// Avoid setting ret to empty string here |
|
6172 |
// so we don't default to auto |
|
6173 |
if ( ret == null && style && style[ name ] ) { |
|
6174 |
ret = style[ name ]; |
|
6175 |
} |
|
6176 | ||
6177 |
// From the awesome hack by Dean Edwards |
|
6178 |
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 |
|
6179 | ||
6180 |
// If we're not dealing with a regular pixel number |
|
6181 |
// but a number that has a weird ending, we need to convert it to pixels |
|
6182 |
// but not position css attributes, as those are proportional to the parent element instead |
|
6183 |
// and we can't measure the parent instead because it might trigger a "stacking dolls" problem |
|
6184 |
if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { |
|
6185 | ||
6186 |
// Remember the original values |
|
6187 |
left = style.left; |
|
6188 |
rs = elem.runtimeStyle; |
|
6189 |
rsLeft = rs && rs.left; |
|
6190 | ||
6191 |
// Put in the new values to get a computed value out |
|
6192 |
if ( rsLeft ) { |
|
6193 |
rs.left = elem.currentStyle.left; |
|
6194 |
} |
|
6195 |
style.left = name === "fontSize" ? "1em" : ret; |
|
6196 |
ret = style.pixelLeft + "px"; |
|
6197 | ||
6198 |
// Revert the changed values |
|
6199 |
style.left = left; |
|
6200 |
if ( rsLeft ) { |
|
6201 |
rs.left = rsLeft; |
|
6202 |
} |
|
6203 |
} |
|
6204 | ||
6205 |
// Support: IE |
|
6206 |
// IE returns zIndex value as an integer. |
|
6207 |
return ret === undefined ? |
|
6208 |
ret : |
|
6209 |
ret + "" || "auto"; |
|
6210 |
}; |
|
6211 |
} |
|
6212 | ||
6213 | ||
6214 | ||
6215 | ||
6216 |
function addGetHookIf( conditionFn, hookFn ) { |
|
6217 |
// Define the hook, we'll check on the first run if it's really needed. |
|
6218 |
return { |
|
6219 |
get: function() { |
|
6220 |
var condition = conditionFn(); |
|
6221 | ||
6222 |
if ( condition == null ) { |
|
6223 |
// The test was not ready at this point; screw the hook this time |
|
6224 |
// but check again when needed next time. |
|
6225 |
return; |
|
6226 |
} |
|
6227 | ||
6228 |
if ( condition ) { |
|
6229 |
// Hook not needed (or it's not possible to use it due to missing dependency), |
|
6230 |
// remove it. |
|
6231 |
// Since there are no other hooks for marginRight, remove the whole object. |
|
6232 |
delete this.get; |
|
6233 |
return; |
|
6234 |
} |
|
6235 | ||
6236 |
// Hook needed; redefine it so that the support test is not executed again. |
|
6237 | ||
6238 |
return (this.get = hookFn).apply( this, arguments ); |
|
6239 |
} |
|
6240 |
}; |
|
6241 |
} |
|
6242 | ||
6243 | ||
6244 |
(function() { |
|
6245 |
var a, reliableHiddenOffsetsVal, boxSizingVal, boxSizingReliableVal, |
|
6246 |
pixelPositionVal, reliableMarginRightVal, |
|
6247 |
div = document.createElement( "div" ), |
|
6248 |
containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", |
|
6249 |
divReset = |
|
6250 |
"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" + |
|
6251 |
"display:block;padding:0;margin:0;border:0"; |
|
6252 | ||
6253 |
// Setup |
|
6254 |
div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; |
|
6255 |
a = div.getElementsByTagName( "a" )[ 0 ]; |
|
6256 | ||
6257 |
a.style.cssText = "float:left;opacity:.5"; |
|
6258 | ||
6259 |
// Make sure that element opacity exists |
|
6260 |
// (IE uses filter instead) |
|
6261 |
// Use a regex to work around a WebKit issue. See #5145 |
|
6262 |
support.opacity = /^0.5/.test( a.style.opacity ); |
|
6263 | ||
6264 |
// Verify style float existence |
|
6265 |
// (IE uses styleFloat instead of cssFloat) |
|
6266 |
support.cssFloat = !!a.style.cssFloat; |
|
6267 | ||
6268 |
div.style.backgroundClip = "content-box"; |
|
6269 |
div.cloneNode( true ).style.backgroundClip = ""; |
|
6270 |
support.clearCloneStyle = div.style.backgroundClip === "content-box"; |
|
6271 | ||
6272 |
// Null elements to avoid leaks in IE. |
|
6273 |
a = div = null; |
|
6274 | ||
6275 |
jQuery.extend(support, { |
|
6276 |
reliableHiddenOffsets: function() { |
|
6277 |
if ( reliableHiddenOffsetsVal != null ) { |
|
6278 |
return reliableHiddenOffsetsVal; |
|
6279 |
} |
|
6280 | ||
6281 |
var container, tds, isSupported, |
|
6282 |
div = document.createElement( "div" ), |
|
6283 |
body = document.getElementsByTagName( "body" )[ 0 ]; |
|
6284 | ||
6285 |
if ( !body ) { |
|
6286 |
// Return for frameset docs that don't have a body |
|
6287 |
return; |
|
6288 |
} |
|
6289 | ||
6290 |
// Setup |
|
6291 |
div.setAttribute( "className", "t" ); |
|
6292 |
div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; |
|
6293 | ||
6294 |
container = document.createElement( "div" ); |
|
6295 |
container.style.cssText = containerStyles; |
|
6296 | ||
6297 |
body.appendChild( container ).appendChild( div ); |
|
6298 | ||
6299 |
// Support: IE8 |
|
6300 |
// Check if table cells still have offsetWidth/Height when they are set |
|
6301 |
// to display:none and there are still other visible table cells in a |
|
6302 |
// table row; if so, offsetWidth/Height are not reliable for use when |
|
6303 |
// determining if an element has been hidden directly using |
|
6304 |
// display:none (it is still safe to use offsets if a parent element is |
|
6305 |
// hidden; don safety goggles and see bug #4512 for more information). |
|
6306 |
div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"; |
|
6307 |
tds = div.getElementsByTagName( "td" ); |
|
6308 |
tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; |
|
6309 |
isSupported = ( tds[ 0 ].offsetHeight === 0 ); |
|
6310 | ||
6311 |
tds[ 0 ].style.display = ""; |
|
6312 |
tds[ 1 ].style.display = "none"; |
|
6313 | ||
6314 |
// Support: IE8 |
|
6315 |
// Check if empty table cells still have offsetWidth/Height |
|
6316 |
reliableHiddenOffsetsVal = isSupported && ( tds[ 0 ].offsetHeight === 0 ); |
|
6317 | ||
6318 |
body.removeChild( container ); |
|
6319 | ||
6320 |
// Null elements to avoid leaks in IE. |
|
6321 |
div = body = null; |
|
6322 | ||
6323 |
return reliableHiddenOffsetsVal; |
|
6324 |
}, |
|
6325 | ||
6326 |
boxSizing: function() { |
|
6327 |
if ( boxSizingVal == null ) { |
|
6328 |
computeStyleTests(); |
|
6329 |
} |
|
6330 |
return boxSizingVal; |
|
6331 |
}, |
|
6332 | ||
6333 |
boxSizingReliable: function() { |
|
6334 |
if ( boxSizingReliableVal == null ) { |
|
6335 |
computeStyleTests(); |
|
6336 |
} |
|
6337 |
return boxSizingReliableVal; |
|
6338 |
}, |
|
6339 | ||
6340 |
pixelPosition: function() { |
|
6341 |
if ( pixelPositionVal == null ) { |
|
6342 |
computeStyleTests(); |
|
6343 |
} |
|
6344 |
return pixelPositionVal; |
|
6345 |
}, |
|
6346 | ||
6347 |
reliableMarginRight: function() { |
|
6348 |
var body, container, div, marginDiv; |
|
6349 | ||
6350 |
// Use window.getComputedStyle because jsdom on node.js will break without it. |
|
6351 |
if ( reliableMarginRightVal == null && window.getComputedStyle ) { |
|
6352 |
body = document.getElementsByTagName( "body" )[ 0 ]; |
|
6353 |
if ( !body ) { |
|
6354 |
// Test fired too early or in an unsupported environment, exit. |
|
6355 |
return; |
|
6356 |
} |
|
6357 | ||
6358 |
container = document.createElement( "div" ); |
|
6359 |
div = document.createElement( "div" ); |
|
6360 |
container.style.cssText = containerStyles; |
|
6361 | ||
6362 |
body.appendChild( container ).appendChild( div ); |
|
6363 | ||
6364 |
// Check if div with explicit width and no margin-right incorrectly |
|
6365 |
// gets computed margin-right based on width of container. (#3333) |
|
6366 |
// Fails in WebKit before Feb 2011 nightlies |
|
6367 |
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right |
|
6368 |
marginDiv = div.appendChild( document.createElement( "div" ) ); |
|
6369 |
marginDiv.style.cssText = div.style.cssText = divReset; |
|
6370 |
marginDiv.style.marginRight = marginDiv.style.width = "0"; |
|
6371 |
div.style.width = "1px"; |
|
6372 | ||
6373 |
reliableMarginRightVal = |
|
6374 |
!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); |
|
6375 | ||
6376 |
body.removeChild( container ); |
|
6377 |
} |
|
6378 | ||
6379 |
return reliableMarginRightVal; |
|
6380 |
} |
|
6381 |
}); |
|
6382 | ||
6383 |
function computeStyleTests() { |
|
6384 |
var container, div, |
|
6385 |
body = document.getElementsByTagName( "body" )[ 0 ]; |
|
6386 | ||
6387 |
if ( !body ) { |
|
6388 |
// Test fired too early or in an unsupported environment, exit. |
|
6389 |
return; |
|
6390 |
} |
|
6391 | ||
6392 |
container = document.createElement( "div" ); |
|
6393 |
div = document.createElement( "div" ); |
|
6394 |
container.style.cssText = containerStyles; |
|
6395 | ||
6396 |
body.appendChild( container ).appendChild( div ); |
|
6397 | ||
6398 |
div.style.cssText = |
|
6399 |
"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" + |
|
6400 |
"position:absolute;display:block;padding:1px;border:1px;width:4px;" + |
|
6401 |
"margin-top:1%;top:1%"; |
|
6402 | ||
6403 |
// Workaround failing boxSizing test due to offsetWidth returning wrong value |
|
6404 |
// with some non-1 values of body zoom, ticket #13543 |
|
6405 |
jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { |
|
6406 |
boxSizingVal = div.offsetWidth === 4; |
|
6407 |
}); |
|
6408 | ||
6409 |
// Will be changed later if needed. |
|
6410 |
boxSizingReliableVal = true; |
|
6411 |
pixelPositionVal = false; |
|
6412 |
reliableMarginRightVal = true; |
|
6413 | ||
6414 |
// Use window.getComputedStyle because jsdom on node.js will break without it. |
|
6415 |
if ( window.getComputedStyle ) { |
|
6416 |
pixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; |
|
6417 |
boxSizingReliableVal = |
|
6418 |
( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; |
|
6419 |
} |
|
6420 | ||
6421 |
body.removeChild( container ); |
|
6422 | ||
6423 |
// Null elements to avoid leaks in IE. |
|
6424 |
div = body = null; |
|
6425 |
} |
|
6426 | ||
6427 |
})(); |
|
6428 | ||
6429 | ||
6430 |
// A method for quickly swapping in/out CSS properties to get correct calculations. |
|
6431 |
jQuery.swap = function( elem, options, callback, args ) { |
|
6432 |
var ret, name, |
|
6433 |
old = {}; |
|
6434 | ||
6435 |
// Remember the old values, and insert the new ones |
|
6436 |
for ( name in options ) { |
|
6437 |
old[ name ] = elem.style[ name ]; |
|
6438 |
elem.style[ name ] = options[ name ]; |
|
6439 |
} |
|
6440 | ||
6441 |
ret = callback.apply( elem, args || [] ); |
|
6442 | ||
6443 |
// Revert the old values |
|
6444 |
for ( name in options ) { |
|
6445 |
elem.style[ name ] = old[ name ]; |
|
6446 |
} |
|
6447 | ||
6448 |
return ret; |
|
6449 |
}; |
|
6450 | ||
6451 | ||
6452 |
var |
|
6453 |
ralpha = /alpha\([^)]*\)/i, |
|
6454 |
ropacity = /opacity\s*=\s*([^)]*)/, |
|
6455 | ||
6456 |
// swappable if display is none or starts with table except "table", "table-cell", or "table-caption" |
|
6457 |
// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display |
|
6458 |
rdisplayswap = /^(none|table(?!-c[ea]).+)/, |
|
6459 |
rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), |
|
6460 |
rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), |
|
6461 | ||
6462 |
cssShow = { position: "absolute", visibility: "hidden", display: "block" }, |
|
6463 |
cssNormalTransform = { |
|
6464 |
letterSpacing: 0, |
|
6465 |
fontWeight: 400 |
|
6466 |
}, |
|
6467 | ||
6468 |
cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; |
|
6469 | ||
6470 | ||
6471 |
// return a css property mapped to a potentially vendor prefixed property |
|
6472 |
function vendorPropName( style, name ) { |
|
6473 | ||
6474 |
// shortcut for names that are not vendor prefixed |
|
6475 |
if ( name in style ) { |
|
6476 |
return name; |
|
6477 |
} |
|
6478 | ||
6479 |
// check for vendor prefixed names |
|
6480 |
var capName = name.charAt(0).toUpperCase() + name.slice(1), |
|
6481 |
origName = name, |
|
6482 |
i = cssPrefixes.length; |
|
6483 | ||
6484 |
while ( i-- ) { |
|
6485 |
name = cssPrefixes[ i ] + capName; |
|
6486 |
if ( name in style ) { |
|
6487 |
return name; |
|
6488 |
} |
|
6489 |
} |
|
6490 | ||
6491 |
return origName; |
|
6492 |
} |
|
6493 | ||
6494 |
function showHide( elements, show ) { |
|
6495 |
var display, elem, hidden, |
|
6496 |
values = [], |
|
6497 |
index = 0, |
|
6498 |
length = elements.length; |
|
6499 | ||
6500 |
for ( ; index < length; index++ ) { |
|
6501 |
elem = elements[ index ]; |
|
6502 |
if ( !elem.style ) { |
|
6503 |
continue; |
|
6504 |
} |
|
6505 | ||
6506 |
values[ index ] = jQuery._data( elem, "olddisplay" ); |
|
6507 |
display = elem.style.display; |
|
6508 |
if ( show ) { |
|
6509 |
// Reset the inline display of this element to learn if it is |
|
6510 |
// being hidden by cascaded rules or not |
|
6511 |
if ( !values[ index ] && display === "none" ) { |
|
6512 |
elem.style.display = ""; |
|
6513 |
} |
|
6514 | ||
6515 |
// Set elements which have been overridden with display: none |
|
6516 |
// in a stylesheet to whatever the default browser style is |
|
6517 |
// for such an element |
|
6518 |
if ( elem.style.display === "" && isHidden( elem ) ) { |
|
6519 |
values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) ); |
|
6520 |
} |
|
6521 |
} else { |
|
6522 | ||
6523 |
if ( !values[ index ] ) { |
|
6524 |
hidden = isHidden( elem ); |
|
6525 | ||
6526 |
if ( display && display !== "none" || !hidden ) { |
|
6527 |
jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); |
|
6528 |
} |
|
6529 |
} |
|
6530 |
} |
|
6531 |
} |
|
6532 | ||
6533 |
// Set the display of most of the elements in a second loop |
|
6534 |
// to avoid the constant reflow |
|
6535 |
for ( index = 0; index < length; index++ ) { |
|
6536 |
elem = elements[ index ]; |
|
6537 |
if ( !elem.style ) { |
|
6538 |
continue; |
|
6539 |
} |
|
6540 |
if ( !show || elem.style.display === "none" || elem.style.display === "" ) { |
|
6541 |
elem.style.display = show ? values[ index ] || "" : "none"; |
|
6542 |
} |
|
6543 |
} |
|
6544 | ||
6545 |
return elements; |
|
6546 |
} |
|
6547 | ||
6548 |
function setPositiveNumber( elem, value, subtract ) { |
|
6549 |
var matches = rnumsplit.exec( value ); |
|
6550 |
return matches ? |
|
6551 |
// Guard against undefined "subtract", e.g., when used as in cssHooks |
|
6552 |
Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : |
|
6553 |
value; |
|
6554 |
} |
|
6555 | ||
6556 |
function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { |
|
6557 |
var i = extra === ( isBorderBox ? "border" : "content" ) ? |
|
6558 |
// If we already have the right measurement, avoid augmentation |
|
6559 |
4 : |
|
6560 |
// Otherwise initialize for horizontal or vertical properties |
|
6561 |
name === "width" ? 1 : 0, |
|
6562 | ||
6563 |
val = 0; |
|
6564 | ||
6565 |
for ( ; i < 4; i += 2 ) { |
|
6566 |
// both box models exclude margin, so add it if we want it |
|
6567 |
if ( extra === "margin" ) { |
|
6568 |
val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); |
|
6569 |
} |
|
6570 | ||
6571 |
if ( isBorderBox ) { |
|
6572 |
// border-box includes padding, so remove it if we want content |
|
6573 |
if ( extra === "content" ) { |
|
6574 |
val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); |
|
6575 |
} |
|
6576 | ||
6577 |
// at this point, extra isn't border nor margin, so remove border |
|
6578 |
if ( extra !== "margin" ) { |
|
6579 |
val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); |
|
6580 |
} |
|
6581 |
} else { |
|
6582 |
// at this point, extra isn't content, so add padding |
|
6583 |
val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); |
|
6584 | ||
6585 |
// at this point, extra isn't content nor padding, so add border |
|
6586 |
if ( extra !== "padding" ) { |
|
6587 |
val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); |
|
6588 |
} |
|
6589 |
} |
|
6590 |
} |
|
6591 | ||
6592 |
return val; |
|
6593 |
} |
|
6594 | ||
6595 |
function getWidthOrHeight( elem, name, extra ) { |
|
6596 | ||
6597 |
// Start with offset property, which is equivalent to the border-box value |
|
6598 |
var valueIsBorderBox = true, |
|
6599 |
val = name === "width" ? elem.offsetWidth : elem.offsetHeight, |
|
6600 |
styles = getStyles( elem ), |
|
6601 |
isBorderBox = support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; |
|
6602 | ||
6603 |
// some non-html elements return undefined for offsetWidth, so check for null/undefined |
|
6604 |
// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 |
|
6605 |
// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 |
|
6606 |
if ( val <= 0 || val == null ) { |
|
6607 |
// Fall back to computed then uncomputed css if necessary |
|
6608 |
val = curCSS( elem, name, styles ); |
|
6609 |
if ( val < 0 || val == null ) { |
|
6610 |
val = elem.style[ name ]; |
|
6611 |
} |
|
6612 | ||
6613 |
// Computed unit is not pixels. Stop here and return. |
|
6614 |
if ( rnumnonpx.test(val) ) { |
|
6615 |
return val; |
|
6616 |
} |
|
6617 | ||
6618 |
// we need the check for style in case a browser which returns unreliable values |
|
6619 |
// for getComputedStyle silently falls back to the reliable elem.style |
|
6620 |
valueIsBorderBox = isBorderBox && ( support.boxSizingReliable() || val === elem.style[ name ] ); |
|
6621 | ||
6622 |
// Normalize "", auto, and prepare for extra |
|
6623 |
val = parseFloat( val ) || 0; |
|
6624 |
} |
|
6625 | ||
6626 |
// use the active box-sizing model to add/subtract irrelevant styles |
|
6627 |
return ( val + |
|
6628 |
augmentWidthOrHeight( |
|
6629 |
elem, |
|
6630 |
name, |
|
6631 |
extra || ( isBorderBox ? "border" : "content" ), |
|
6632 |
valueIsBorderBox, |
|
6633 |
styles |
|
6634 |
) |
|
6635 |
) + "px"; |
|
6636 |
} |
|
6637 | ||
6638 |
jQuery.extend({ |
|
6639 |
// Add in style property hooks for overriding the default |
|
6640 |
// behavior of getting and setting a style property |
|
6641 |
cssHooks: { |
|
6642 |
opacity: { |
|
6643 |
get: function( elem, computed ) { |
|
6644 |
if ( computed ) { |
|
6645 |
// We should always get a number back from opacity |
|
6646 |
var ret = curCSS( elem, "opacity" ); |
|
6647 |
return ret === "" ? "1" : ret; |
|
6648 |
} |
|
6649 |
} |
|
6650 |
} |
|
6651 |
}, |
|
6652 | ||
6653 |
// Don't automatically add "px" to these possibly-unitless properties |
|
6654 |
cssNumber: { |
|
6655 |
"columnCount": true, |
|
6656 |
"fillOpacity": true, |
|
6657 |
"fontWeight": true, |
|
6658 |
"lineHeight": true, |
|
6659 |
"opacity": true, |
|
6660 |
"order": true, |
|
6661 |
"orphans": true, |
|
6662 |
"widows": true, |
|
6663 |
"zIndex": true, |
|
6664 |
"zoom": true |
|
6665 |
}, |
|
6666 | ||
6667 |
// Add in properties whose names you wish to fix before |
|
6668 |
// setting or getting the value |
|
6669 |
cssProps: { |
|
6670 |
// normalize float css property |
|
6671 |
"float": support.cssFloat ? "cssFloat" : "styleFloat" |
|
6672 |
}, |
|
6673 | ||
6674 |
// Get and set the style property on a DOM Node |
|
6675 |
style: function( elem, name, value, extra ) { |
|
6676 |
// Don't set styles on text and comment nodes |
|
6677 |
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { |
|
6678 |
return; |
|
6679 |
} |
|
6680 | ||
6681 |
// Make sure that we're working with the right name |
|
6682 |
var ret, type, hooks, |
|
6683 |
origName = jQuery.camelCase( name ), |
|
6684 |
style = elem.style; |
|
6685 | ||
6686 |
name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); |
|
6687 | ||
6688 |
// gets hook for the prefixed version |
|
6689 |
// followed by the unprefixed version |
|
6690 |
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; |
|
6691 | ||
6692 |
// Check if we're setting a value |
|
6693 |
if ( value !== undefined ) { |
|
6694 |
type = typeof value; |
|
6695 | ||
6696 |
// convert relative number strings (+= or -=) to relative numbers. #7345 |
|
6697 |
if ( type === "string" && (ret = rrelNum.exec( value )) ) { |
|
6698 |
value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); |
|
6699 |
// Fixes bug #9237 |
|
6700 |
type = "number"; |
|
6701 |
} |
|
6702 | ||
6703 |
// Make sure that null and NaN values aren't set. See: #7116 |
|
6704 |
if ( value == null || value !== value ) { |
|
6705 |
return; |
|
6706 |
} |
|
6707 | ||
6708 |
// If a number was passed in, add 'px' to the (except for certain CSS properties) |
|
6709 |
if ( type === "number" && !jQuery.cssNumber[ origName ] ) { |
|
6710 |
value += "px"; |
|
6711 |
} |
|
6712 | ||
6713 |
// Fixes #8908, it can be done more correctly by specifing setters in cssHooks, |
|
6714 |
// but it would mean to define eight (for every problematic property) identical functions |
|
6715 |
if ( !support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { |
|
6716 |
style[ name ] = "inherit"; |
|
6717 |
} |
|
6718 | ||
6719 |
// If a hook was provided, use that value, otherwise just set the specified value |
|
6720 |
if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { |
|
6721 | ||
6722 |
// Support: IE |
|
6723 |
// Swallow errors from 'invalid' CSS values (#5509) |
|
6724 |
try { |
|
6725 |
// Support: Chrome, Safari |
|
6726 |
// Setting style to blank string required to delete "style: x !important;" |
|
6727 |
style[ name ] = ""; |
|
6728 |
style[ name ] = value; |
|
6729 |
} catch(e) {} |
|
6730 |
} |
|
6731 | ||
6732 |
} else { |
|
6733 |
// If a hook was provided get the non-computed value from there |
|
6734 |
if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { |
|
6735 |
return ret; |
|
6736 |
} |
|
6737 | ||
6738 |
// Otherwise just get the value from the style object |
|
6739 |
return style[ name ]; |
|
6740 |
} |
|
6741 |
}, |
|
6742 | ||
6743 |
css: function( elem, name, extra, styles ) { |
|
6744 |
var num, val, hooks, |
|
6745 |
origName = jQuery.camelCase( name ); |
|
6746 | ||
6747 |
// Make sure that we're working with the right name |
|
6748 |
name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); |
|
6749 | ||
6750 |
// gets hook for the prefixed version |
|
6751 |
// followed by the unprefixed version |
|
6752 |
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; |
|
6753 | ||
6754 |
// If a hook was provided get the computed value from there |
|
6755 |
if ( hooks && "get" in hooks ) { |
|
6756 |
val = hooks.get( elem, true, extra ); |
|
6757 |
} |
|
6758 | ||
6759 |
// Otherwise, if a way to get the computed value exists, use that |
|
6760 |
if ( val === undefined ) { |
|
6761 |
val = curCSS( elem, name, styles ); |
|
6762 |
} |
|
6763 | ||
6764 |
//convert "normal" to computed value |
|
6765 |
if ( val === "normal" && name in cssNormalTransform ) { |
|
6766 |
val = cssNormalTransform[ name ]; |
|
6767 |
} |
|
6768 | ||
6769 |
// Return, converting to number if forced or a qualifier was provided and val looks numeric |
|
6770 |
if ( extra === "" || extra ) { |
|
6771 |
num = parseFloat( val ); |
|
6772 |
return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; |
|
6773 |
} |
|
6774 |
return val; |
|
6775 |
} |
|
6776 |
}); |
|
6777 | ||
6778 |
jQuery.each([ "height", "width" ], function( i, name ) { |
|
6779 |
jQuery.cssHooks[ name ] = { |
|
6780 |
get: function( elem, computed, extra ) { |
|
6781 |
if ( computed ) { |
|
6782 |
// certain elements can have dimension info if we invisibly show them |
|
6783 |
// however, it must have a current display style that would benefit from this |
|
6784 |
return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ? |
|
6785 |
jQuery.swap( elem, cssShow, function() { |
|
6786 |
return getWidthOrHeight( elem, name, extra ); |
|
6787 |
}) : |
|
6788 |
getWidthOrHeight( elem, name, extra ); |
|
6789 |
} |
|
6790 |
}, |
|
6791 | ||
6792 |
set: function( elem, value, extra ) { |
|
6793 |
var styles = extra && getStyles( elem ); |
|
6794 |
return setPositiveNumber( elem, value, extra ? |
|
6795 |
augmentWidthOrHeight( |
|
6796 |
elem, |
|
6797 |
name, |
|
6798 |
extra, |
|
6799 |
support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", |
|
6800 |
styles |
|
6801 |
) : 0 |
|
6802 |
); |
|
6803 |
} |
|
6804 |
}; |
|
6805 |
}); |
|
6806 | ||
6807 |
if ( !support.opacity ) { |
|
6808 |
jQuery.cssHooks.opacity = { |
|
6809 |
get: function( elem, computed ) { |
|
6810 |
// IE uses filters for opacity |
|
6811 |
return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? |
|
6812 |
( 0.01 * parseFloat( RegExp.$1 ) ) + "" : |
|
6813 |
computed ? "1" : ""; |
|
6814 |
}, |
|
6815 | ||
6816 |
set: function( elem, value ) { |
|
6817 |
var style = elem.style, |
|
6818 |
currentStyle = elem.currentStyle, |
|
6819 |
opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", |
|
6820 |
filter = currentStyle && currentStyle.filter || style.filter || ""; |
|
6821 | ||
6822 |
// IE has trouble with opacity if it does not have layout |
|
6823 |
// Force it by setting the zoom level |
|
6824 |
style.zoom = 1; |
|
6825 | ||
6826 |
// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 |
|
6827 |
// if value === "", then remove inline opacity #12685 |
|
6828 |
if ( ( value >= 1 || value === "" ) && |
|
6829 |
jQuery.trim( filter.replace( ralpha, "" ) ) === "" && |
|
6830 |
style.removeAttribute ) { |
|
6831 | ||
6832 |
// Setting style.filter to null, "" & " " still leave "filter:" in the cssText |
|
6833 |
// if "filter:" is present at all, clearType is disabled, we want to avoid this |
|
6834 |
// style.removeAttribute is IE Only, but so apparently is this code path... |
|
6835 |
style.removeAttribute( "filter" ); |
|
6836 | ||
6837 |
// if there is no filter style applied in a css rule or unset inline opacity, we are done |
|
6838 |
if ( value === "" || currentStyle && !currentStyle.filter ) { |
|
6839 |
return; |
|
6840 |
} |
|
6841 |
} |
|
6842 | ||
6843 |
// otherwise, set new filter values |
|
6844 |
style.filter = ralpha.test( filter ) ? |
|
6845 |
filter.replace( ralpha, opacity ) : |
|
6846 |
filter + " " + opacity; |
|
6847 |
} |
|
6848 |
}; |
|
6849 |
} |
|
6850 | ||
6851 |
jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, |
|
6852 |
function( elem, computed ) { |
|
6853 |
if ( computed ) { |
|
6854 |
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right |
|
6855 |
// Work around by temporarily setting element display to inline-block |
|
6856 |
return jQuery.swap( elem, { "display": "inline-block" }, |
|
6857 |
curCSS, [ elem, "marginRight" ] ); |
|
6858 |
} |
|
6859 |
} |
|
6860 |
); |
|
6861 | ||
6862 |
// These hooks are used by animate to expand properties |
|
6863 |
jQuery.each({ |
|
6864 |
margin: "", |
|
6865 |
padding: "", |
|
6866 |
border: "Width" |
|
6867 |
}, function( prefix, suffix ) { |
|
6868 |
jQuery.cssHooks[ prefix + suffix ] = { |
|
6869 |
expand: function( value ) { |
|
6870 |
var i = 0, |
|
6871 |
expanded = {}, |
|
6872 | ||
6873 |
// assumes a single number if not a string |
|
6874 |
parts = typeof value === "string" ? value.split(" ") : [ value ]; |
|
6875 | ||
6876 |
for ( ; i < 4; i++ ) { |
|
6877 |
expanded[ prefix + cssExpand[ i ] + suffix ] = |
|
6878 |
parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; |
|
6879 |
} |
|
6880 | ||
6881 |
return expanded; |
|
6882 |
} |
|
6883 |
}; |
|
6884 | ||
6885 |
if ( !rmargin.test( prefix ) ) { |
|
6886 |
jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; |
|
6887 |
} |
|
6888 |
}); |
|
6889 | ||
6890 |
jQuery.fn.extend({ |
|
6891 |
css: function( name, value ) { |
|
6892 |
return access( this, function( elem, name, value ) { |
|
6893 |
var styles, len, |
|
6894 |
map = {}, |
|
6895 |
i = 0; |
|
6896 | ||
6897 |
if ( jQuery.isArray( name ) ) { |
|
6898 |
styles = getStyles( elem ); |
|
6899 |
len = name.length; |
|
6900 | ||
6901 |
for ( ; i < len; i++ ) { |
|
6902 |
map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); |
|
6903 |
} |
|
6904 | ||
6905 |
return map; |
|
6906 |
} |
|
6907 | ||
6908 |
return value !== undefined ? |
|
6909 |
jQuery.style( elem, name, value ) : |
|
6910 |
jQuery.css( elem, name ); |
|
6911 |
}, name, value, arguments.length > 1 ); |
|
6912 |
}, |
|
6913 |
show: function() { |
|
6914 |
return showHide( this, true ); |
|
6915 |
}, |
|
6916 |
hide: function() { |
|
6917 |
return showHide( this ); |
|
6918 |
}, |
|
6919 |
toggle: function( state ) { |
|
6920 |
if ( typeof state === "boolean" ) { |
|
6921 |
return state ? this.show() : this.hide(); |
|
6922 |
} |
|
6923 | ||
6924 |
return this.each(function() { |
|
6925 |
if ( isHidden( this ) ) { |
|
6926 |
jQuery( this ).show(); |
|
6927 |
} else { |
|
6928 |
jQuery( this ).hide(); |
|
6929 |
} |
|
6930 |
}); |
|
6931 |
} |
|
6932 |
}); |
|
6933 | ||
6934 | ||
6935 |
function Tween( elem, options, prop, end, easing ) { |
|
6936 |
return new Tween.prototype.init( elem, options, prop, end, easing ); |
|
6937 |
} |
|
6938 |
jQuery.Tween = Tween; |
|
6939 | ||
6940 |
Tween.prototype = { |
|
6941 |
constructor: Tween, |
|
6942 |
init: function( elem, options, prop, end, easing, unit ) { |
|
6943 |
this.elem = elem; |
|
6944 |
this.prop = prop; |
|
6945 |
this.easing = easing || "swing"; |
|
6946 |
this.options = options; |
|
6947 |
this.start = this.now = this.cur(); |
|
6948 |
this.end = end; |
|
6949 |
this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); |
|
6950 |
}, |
|
6951 |
cur: function() { |
|
6952 |
var hooks = Tween.propHooks[ this.prop ]; |
|
6953 | ||
6954 |
return hooks && hooks.get ? |
|
6955 |
hooks.get( this ) : |
|
6956 |
Tween.propHooks._default.get( this ); |
|
6957 |
}, |
|
6958 |
run: function( percent ) { |
|
6959 |
var eased, |
|
6960 |
hooks = Tween.propHooks[ this.prop ]; |
|
6961 | ||
6962 |
if ( this.options.duration ) { |
|
6963 |
this.pos = eased = jQuery.easing[ this.easing ]( |
|
6964 |
percent, this.options.duration * percent, 0, 1, this.options.duration |
|
6965 |
); |
|
6966 |
} else { |
|
6967 |
this.pos = eased = percent; |
|
6968 |
} |
|
6969 |
this.now = ( this.end - this.start ) * eased + this.start; |
|
6970 | ||
6971 |
if ( this.options.step ) { |
|
6972 |
this.options.step.call( this.elem, this.now, this ); |
|
6973 |
} |
|
6974 | ||
6975 |
if ( hooks && hooks.set ) { |
|
6976 |
hooks.set( this ); |
|
6977 |
} else { |
|
6978 |
Tween.propHooks._default.set( this ); |
|
6979 |
} |
|
6980 |
return this; |
|
6981 |
} |
|
6982 |
}; |
|
6983 | ||
6984 |
Tween.prototype.init.prototype = Tween.prototype; |
|
6985 | ||
6986 |
Tween.propHooks = { |
|
6987 |
_default: { |
|
6988 |
get: function( tween ) { |
|
6989 |
var result; |
|
6990 | ||
6991 |
if ( tween.elem[ tween.prop ] != null && |
|
6992 |
(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { |
|
6993 |
return tween.elem[ tween.prop ]; |
|
6994 |
} |
|
6995 | ||
6996 |
// passing an empty string as a 3rd parameter to .css will automatically |
|
6997 |
// attempt a parseFloat and fallback to a string if the parse fails |
|
6998 |
// so, simple values such as "10px" are parsed to Float. |
|
6999 |
// complex values such as "rotate(1rad)" are returned as is. |
|
7000 |
result = jQuery.css( tween.elem, tween.prop, "" ); |
|
7001 |
// Empty strings, null, undefined and "auto" are converted to 0. |
|
7002 |
return !result || result === "auto" ? 0 : result; |
|
7003 |
}, |
|
7004 |
set: function( tween ) { |
|
7005 |
// use step hook for back compat - use cssHook if its there - use .style if its |
|
7006 |
// available and use plain properties where available |
|
7007 |
if ( jQuery.fx.step[ tween.prop ] ) { |
|
7008 |
jQuery.fx.step[ tween.prop ]( tween ); |
|
7009 |
} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { |
|
7010 |
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); |
|
7011 |
} else { |
|
7012 |
tween.elem[ tween.prop ] = tween.now; |
|
7013 |
} |
|
7014 |
} |
|
7015 |
} |
|
7016 |
}; |
|
7017 | ||
7018 |
// Support: IE <=9 |
|
7019 |
// Panic based approach to setting things on disconnected nodes |
|
7020 | ||
7021 |
Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { |
|
7022 |
set: function( tween ) { |
|
7023 |
if ( tween.elem.nodeType && tween.elem.parentNode ) { |
|
7024 |
tween.elem[ tween.prop ] = tween.now; |
|
7025 |
} |
|
7026 |
} |
|
7027 |
}; |
|
7028 | ||
7029 |
jQuery.easing = { |
|
7030 |
linear: function( p ) { |
|
7031 |
return p; |
|
7032 |
}, |
|
7033 |
swing: function( p ) { |
|
7034 |
return 0.5 - Math.cos( p * Math.PI ) / 2; |
|
7035 |
} |
|
7036 |
}; |
|
7037 | ||
7038 |
jQuery.fx = Tween.prototype.init; |
|
7039 | ||
7040 |
// Back Compat <1.8 extension point |
|
7041 |
jQuery.fx.step = {}; |
|
7042 | ||
7043 | ||
7044 | ||
7045 | ||
7046 |
var |
|
7047 |
fxNow, timerId, |
|
7048 |
rfxtypes = /^(?:toggle|show|hide)$/, |
|
7049 |
rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), |
|
7050 |
rrun = /queueHooks$/, |
|
7051 |
animationPrefilters = [ defaultPrefilter ], |
|
7052 |
tweeners = { |
|
7053 |
"*": [ function( prop, value ) { |
|
7054 |
var tween = this.createTween( prop, value ), |
|
7055 |
target = tween.cur(), |
|
7056 |
parts = rfxnum.exec( value ), |
|
7057 |
unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), |
|
7058 | ||
7059 |
// Starting value computation is required for potential unit mismatches |
|
7060 |
start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && |
|
7061 |
rfxnum.exec( jQuery.css( tween.elem, prop ) ), |
|
7062 |
scale = 1, |
|
7063 |
maxIterations = 20; |
|
7064 | ||
7065 |
if ( start && start[ 3 ] !== unit ) { |
|
7066 |
// Trust units reported by jQuery.css |
|
7067 |
unit = unit || start[ 3 ]; |
|
7068 | ||
7069 |
// Make sure we update the tween properties later on |
|
7070 |
parts = parts || []; |
|
7071 | ||
7072 |
// Iteratively approximate from a nonzero starting point |
|
7073 |
start = +target || 1; |
|
7074 | ||
7075 |
do { |
|
7076 |
// If previous iteration zeroed out, double until we get *something* |
|
7077 |
// Use a string for doubling factor so we don't accidentally see scale as unchanged below |
|
7078 |
scale = scale || ".5"; |
|
7079 | ||
7080 |
// Adjust and apply |
|
7081 |
start = start / scale; |
|
7082 |
jQuery.style( tween.elem, prop, start + unit ); |
|
7083 | ||
7084 |
// Update scale, tolerating zero or NaN from tween.cur() |
|
7085 |
// And breaking the loop if scale is unchanged or perfect, or if we've just had enough |
|
7086 |
} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); |
|
7087 |
} |
|
7088 | ||
7089 |
// Update tween properties |
|
7090 |
if ( parts ) { |
|
7091 |
start = tween.start = +start || +target || 0; |
|
7092 |
tween.unit = unit; |
|
7093 |
// If a +=/-= token was provided, we're doing a relative animation |
|
7094 |
tween.end = parts[ 1 ] ? |
|
7095 |
start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : |
|
7096 |
+parts[ 2 ]; |
|
7097 |
} |
|
7098 | ||
7099 |
return tween; |
|
7100 |
} ] |
|
7101 |
}; |
|
7102 | ||
7103 |
// Animations created synchronously will run synchronously |
|
7104 |
function createFxNow() { |
|
7105 |
setTimeout(function() { |
|
7106 |
fxNow = undefined; |
|
7107 |
}); |
|
7108 |
return ( fxNow = jQuery.now() ); |
|
7109 |
} |
|
7110 | ||
7111 |
// Generate parameters to create a standard animation |
|
7112 |
function genFx( type, includeWidth ) { |
|
7113 |
var which, |
|
7114 |
attrs = { height: type }, |
|
7115 |
i = 0; |
|
7116 | ||
7117 |
// if we include width, step value is 1 to do all cssExpand values, |
|
7118 |
// if we don't include width, step value is 2 to skip over Left and Right |
|
7119 |
includeWidth = includeWidth ? 1 : 0; |
|
7120 |
for ( ; i < 4 ; i += 2 - includeWidth ) { |
|
7121 |
which = cssExpand[ i ]; |
|
7122 |
attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; |
|
7123 |
} |
|
7124 | ||
7125 |
if ( includeWidth ) { |
|
7126 |
attrs.opacity = attrs.width = type; |
|
7127 |
} |
|
7128 | ||
7129 |
return attrs; |
|
7130 |
} |
|
7131 | ||
7132 |
function createTween( value, prop, animation ) { |
|
7133 |
var tween, |
|
7134 |
collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), |
|
7135 |
index = 0, |
|
7136 |
length = collection.length; |
|
7137 |
for ( ; index < length; index++ ) { |
|
7138 |
if ( (tween = collection[ index ].call( animation, prop, value )) ) { |
|
7139 | ||
7140 |
// we're done with this property |
|
7141 |
return tween; |
|
7142 |
} |
|
7143 |
} |
|
7144 |
} |
|
7145 | ||
7146 |
function defaultPrefilter( elem, props, opts ) { |
|
7147 |
/* jshint validthis: true */ |
|
7148 |
var prop, value, toggle, tween, hooks, oldfire, display, dDisplay, |
|
7149 |
anim = this, |
|
7150 |
orig = {}, |
|
7151 |
style = elem.style, |
|
7152 |
hidden = elem.nodeType && isHidden( elem ), |
|
7153 |
dataShow = jQuery._data( elem, "fxshow" ); |
|
7154 | ||
7155 |
// handle queue: false promises |
|
7156 |
if ( !opts.queue ) { |
|
7157 |
hooks = jQuery._queueHooks( elem, "fx" ); |
|
7158 |
if ( hooks.unqueued == null ) { |
|
7159 |
hooks.unqueued = 0; |
|
7160 |
oldfire = hooks.empty.fire; |
|
7161 |
hooks.empty.fire = function() { |
|
7162 |
if ( !hooks.unqueued ) { |
|
7163 |
oldfire(); |
|
7164 |
} |
|
7165 |
}; |
|
7166 |
} |
|
7167 |
hooks.unqueued++; |
|
7168 | ||
7169 |
anim.always(function() { |
|
7170 |
// doing this makes sure that the complete handler will be called |
|
7171 |
// before this completes |
|
7172 |
anim.always(function() { |
|
7173 |
hooks.unqueued--; |
|
7174 |
if ( !jQuery.queue( elem, "fx" ).length ) { |
|
7175 |
hooks.empty.fire(); |
|
7176 |
} |
|
7177 |
}); |
|
7178 |
}); |
|
7179 |
} |
|
7180 | ||
7181 |
// height/width overflow pass |
|
7182 |
if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { |
|
7183 |
// Make sure that nothing sneaks out |
|
7184 |
// Record all 3 overflow attributes because IE does not |
|
7185 |
// change the overflow attribute when overflowX and |
|
7186 |
// overflowY are set to the same value |
|
7187 |
opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; |
|
7188 | ||
7189 |
// Set display property to inline-block for height/width |
|
7190 |
// animations on inline elements that are having width/height animated |
|
7191 |
display = jQuery.css( elem, "display" ); |
|
7192 |
dDisplay = defaultDisplay( elem.nodeName ); |
|
7193 |
if ( display === "none" ) { |
|
7194 |
display = dDisplay; |
|
7195 |
} |
|
7196 |
if ( display === "inline" && |
|
7197 |
jQuery.css( elem, "float" ) === "none" ) { |
|
7198 | ||
7199 |
// inline-level elements accept inline-block; |
|
7200 |
// block-level elements need to be inline with layout |
|
7201 |
if ( !support.inlineBlockNeedsLayout || dDisplay === "inline" ) { |
|
7202 |
style.display = "inline-block"; |
|
7203 |
} else { |
|
7204 |
style.zoom = 1; |
|
7205 |
} |
|
7206 |
} |
|
7207 |
} |
|
7208 | ||
7209 |
if ( opts.overflow ) { |
|
7210 |
style.overflow = "hidden"; |
|
7211 |
if ( !support.shrinkWrapBlocks() ) { |
|
7212 |
anim.always(function() { |
|
7213 |
style.overflow = opts.overflow[ 0 ]; |
|
7214 |
style.overflowX = opts.overflow[ 1 ]; |
|
7215 |
style.overflowY = opts.overflow[ 2 ]; |
|
7216 |
}); |
|
7217 |
} |
|
7218 |
} |
|
7219 | ||
7220 |
// show/hide pass |
|
7221 |
for ( prop in props ) { |
|
7222 |
value = props[ prop ]; |
|
7223 |
if ( rfxtypes.exec( value ) ) { |
|
7224 |
delete props[ prop ]; |
|
7225 |
toggle = toggle || value === "toggle"; |
|
7226 |
if ( value === ( hidden ? "hide" : "show" ) ) { |
|
7227 | ||
7228 |
// If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden |
|
7229 |
if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { |
|
7230 |
hidden = true; |
|
7231 |
} else { |
|
7232 |
continue; |
|
7233 |
} |
|
7234 |
} |
|
7235 |
orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); |
|
7236 |
} |
|
7237 |
} |
|
7238 | ||
7239 |
if ( !jQuery.isEmptyObject( orig ) ) { |
|
7240 |
if ( dataShow ) { |
|
7241 |
if ( "hidden" in dataShow ) { |
|
7242 |
hidden = dataShow.hidden; |
|
7243 |
} |
|
7244 |
} else { |
|
7245 |
dataShow = jQuery._data( elem, "fxshow", {} ); |
|
7246 |
} |
|
7247 | ||
7248 |
// store state if its toggle - enables .stop().toggle() to "reverse" |
|
7249 |
if ( toggle ) { |
|
7250 |
dataShow.hidden = !hidden; |
|
7251 |
} |
|
7252 |
if ( hidden ) { |
|
7253 |
jQuery( elem ).show(); |
|
7254 |
} else { |
|
7255 |
anim.done(function() { |
|
7256 |
jQuery( elem ).hide(); |
|
7257 |
}); |
|
7258 |
} |
|
7259 |
anim.done(function() { |
|
7260 |
var prop; |
|
7261 |
jQuery._removeData( elem, "fxshow" ); |
|
7262 |
for ( prop in orig ) { |
|
7263 |
jQuery.style( elem, prop, orig[ prop ] ); |
|
7264 |
} |
|
7265 |
}); |
|
7266 |
for ( prop in orig ) { |
|
7267 |
tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); |
|
7268 | ||
7269 |
if ( !( prop in dataShow ) ) { |
|
7270 |
dataShow[ prop ] = tween.start; |
|
7271 |
if ( hidden ) { |
|
7272 |
tween.end = tween.start; |
|
7273 |
tween.start = prop === "width" || prop === "height" ? 1 : 0; |
|
7274 |
} |
|
7275 |
} |
|
7276 |
} |
|
7277 |
} |
|
7278 |
} |
|
7279 | ||
7280 |
function propFilter( props, specialEasing ) { |
|
7281 |
var index, name, easing, value, hooks; |
|
7282 | ||
7283 |
// camelCase, specialEasing and expand cssHook pass |
|
7284 |
for ( index in props ) { |
|
7285 |
name = jQuery.camelCase( index ); |
|
7286 |
easing = specialEasing[ name ]; |
|
7287 |
value = props[ index ]; |
|
7288 |
if ( jQuery.isArray( value ) ) { |
|
7289 |
easing = value[ 1 ]; |
|
7290 |
value = props[ index ] = value[ 0 ]; |
|
7291 |
} |
|
7292 | ||
7293 |
if ( index !== name ) { |
|
7294 |
props[ name ] = value; |
|
7295 |
delete props[ index ]; |
|
7296 |
} |
|
7297 | ||
7298 |
hooks = jQuery.cssHooks[ name ]; |
|
7299 |
if ( hooks && "expand" in hooks ) { |
|
7300 |
value = hooks.expand( value ); |
|
7301 |
delete props[ name ]; |
|
7302 | ||
7303 |
// not quite $.extend, this wont overwrite keys already present. |
|
7304 |
// also - reusing 'index' from above because we have the correct "name" |
|
7305 |
for ( index in value ) { |
|
7306 |
if ( !( index in props ) ) { |
|
7307 |
props[ index ] = value[ index ]; |
|
7308 |
specialEasing[ index ] = easing; |
|
7309 |
} |
|
7310 |
} |
|
7311 |
} else { |
|
7312 |
specialEasing[ name ] = easing; |
|
7313 |
} |
|
7314 |
} |
|
7315 |
} |
|
7316 | ||
7317 |
function Animation( elem, properties, options ) { |
|
7318 |
var result, |
|
7319 |
stopped, |
|
7320 |
index = 0, |
|
7321 |
length = animationPrefilters.length, |
|
7322 |
deferred = jQuery.Deferred().always( function() { |
|
7323 |
// don't match elem in the :animated selector |
|
7324 |
delete tick.elem; |
|
7325 |
}), |
|
7326 |
tick = function() { |
|
7327 |
if ( stopped ) { |
|
7328 |
return false; |
|
7329 |
} |
|
7330 |
var currentTime = fxNow || createFxNow(), |
|
7331 |
remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), |
|
7332 |
// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497) |
|
7333 |
temp = remaining / animation.duration || 0, |
|
7334 |
percent = 1 - temp, |
|
7335 |
index = 0, |
|
7336 |
length = animation.tweens.length; |
|
7337 | ||
7338 |
for ( ; index < length ; index++ ) { |
|
7339 |
animation.tweens[ index ].run( percent ); |
|
7340 |
} |
|
7341 | ||
7342 |
deferred.notifyWith( elem, [ animation, percent, remaining ]); |
|
7343 | ||
7344 |
if ( percent < 1 && length ) { |
|
7345 |
return remaining; |
|
7346 |
} else { |
|
7347 |
deferred.resolveWith( elem, [ animation ] ); |
|
7348 |
return false; |
|
7349 |
} |
|
7350 |
}, |
|
7351 |
animation = deferred.promise({ |
|
7352 |
elem: elem, |
|
7353 |
props: jQuery.extend( {}, properties ), |
|
7354 |
opts: jQuery.extend( true, { specialEasing: {} }, options ), |
|
7355 |
originalProperties: properties, |
|
7356 |
originalOptions: options, |
|
7357 |
startTime: fxNow || createFxNow(), |
|
7358 |
duration: options.duration, |
|
7359 |
tweens: [], |
|
7360 |
createTween: function( prop, end ) { |
|
7361 |
var tween = jQuery.Tween( elem, animation.opts, prop, end, |
|
7362 |
animation.opts.specialEasing[ prop ] || animation.opts.easing ); |
|
7363 |
animation.tweens.push( tween ); |
|
7364 |
return tween; |
|
7365 |
}, |
|
7366 |
stop: function( gotoEnd ) { |
|
7367 |
var index = 0, |
|
7368 |
// if we are going to the end, we want to run all the tweens |
|
7369 |
// otherwise we skip this part |
|
7370 |
length = gotoEnd ? animation.tweens.length : 0; |
|
7371 |
if ( stopped ) { |
|
7372 |
return this; |
|
7373 |
} |
|
7374 |
stopped = true; |
|
7375 |
for ( ; index < length ; index++ ) { |
|
7376 |
animation.tweens[ index ].run( 1 ); |
|
7377 |
} |
|
7378 | ||
7379 |
// resolve when we played the last frame |
|
7380 |
// otherwise, reject |
|
7381 |
if ( gotoEnd ) { |
|
7382 |
deferred.resolveWith( elem, [ animation, gotoEnd ] ); |
|
7383 |
} else { |
|
7384 |
deferred.rejectWith( elem, [ animation, gotoEnd ] ); |
|
7385 |
} |
|
7386 |
return this; |
|
7387 |
} |
|
7388 |
}), |
|
7389 |
props = animation.props; |
|
7390 | ||
7391 |
propFilter( props, animation.opts.specialEasing ); |
|
7392 | ||
7393 |
for ( ; index < length ; index++ ) { |
|
7394 |
result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); |
|
7395 |
if ( result ) { |
|
7396 |
return result; |
|
7397 |
} |
|
7398 |
} |
|
7399 | ||
7400 |
jQuery.map( props, createTween, animation ); |
|
7401 | ||
7402 |
if ( jQuery.isFunction( animation.opts.start ) ) { |
|
7403 |
animation.opts.start.call( elem, animation ); |
|
7404 |
} |
|
7405 | ||
7406 |
jQuery.fx.timer( |
|
7407 |
jQuery.extend( tick, { |
|
7408 |
elem: elem, |
|
7409 |
anim: animation, |
|
7410 |
queue: animation.opts.queue |
|
7411 |
}) |
|
7412 |
); |
|
7413 | ||
7414 |
// attach callbacks from options |
|
7415 |
return animation.progress( animation.opts.progress ) |
|
7416 |
.done( animation.opts.done, animation.opts.complete ) |
|
7417 |
.fail( animation.opts.fail ) |
|
7418 |
.always( animation.opts.always ); |
|
7419 |
} |
|
7420 | ||
7421 |
jQuery.Animation = jQuery.extend( Animation, { |
|
7422 |
tweener: function( props, callback ) { |
|
7423 |
if ( jQuery.isFunction( props ) ) { |
|
7424 |
callback = props; |
|
7425 |
props = [ "*" ]; |
|
7426 |
} else { |
|
7427 |
props = props.split(" "); |
|
7428 |
} |
|
7429 | ||
7430 |
var prop, |
|
7431 |
index = 0, |
|
7432 |
length = props.length; |
|
7433 | ||
7434 |
for ( ; index < length ; index++ ) { |
|
7435 |
prop = props[ index ]; |
|
7436 |
tweeners[ prop ] = tweeners[ prop ] || []; |
|
7437 |
tweeners[ prop ].unshift( callback ); |
|
7438 |
} |
|
7439 |
}, |
|
7440 | ||
7441 |
prefilter: function( callback, prepend ) { |
|
7442 |
if ( prepend ) { |
|
7443 |
animationPrefilters.unshift( callback ); |
|
7444 |
} else { |
|
7445 |
animationPrefilters.push( callback ); |
|
7446 |
} |
|
7447 |
} |
|
7448 |
}); |
|
7449 | ||
7450 |
jQuery.speed = function( speed, easing, fn ) { |
|
7451 |
var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { |
|
7452 |
complete: fn || !fn && easing || |
|
7453 |
jQuery.isFunction( speed ) && speed, |
|
7454 |
duration: speed, |
|
7455 |
easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing |
|
7456 |
}; |
|
7457 | ||
7458 |
opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : |
|
7459 |
opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; |
|
7460 | ||
7461 |
// normalize opt.queue - true/undefined/null -> "fx" |
|
7462 |
if ( opt.queue == null || opt.queue === true ) { |
|
7463 |
opt.queue = "fx"; |
|
7464 |
} |
|
7465 | ||
7466 |
// Queueing |
|
7467 |
opt.old = opt.complete; |
|
7468 | ||
7469 |
opt.complete = function() { |
|
7470 |
if ( jQuery.isFunction( opt.old ) ) { |
|
7471 |
opt.old.call( this ); |
|
7472 |
} |
|
7473 | ||
7474 |
if ( opt.queue ) { |
|
7475 |
jQuery.dequeue( this, opt.queue ); |
|
7476 |
} |
|
7477 |
}; |
|
7478 | ||
7479 |
return opt; |
|
7480 |
}; |
|
7481 | ||
7482 |
jQuery.fn.extend({ |
|
7483 |
fadeTo: function( speed, to, easing, callback ) { |
|
7484 | ||
7485 |
// show any hidden elements after setting opacity to 0 |
|
7486 |
return this.filter( isHidden ).css( "opacity", 0 ).show() |
|
7487 | ||
7488 |
// animate to the value specified |
|
7489 |
.end().animate({ opacity: to }, speed, easing, callback ); |
|
7490 |
}, |
|
7491 |
animate: function( prop, speed, easing, callback ) { |
|
7492 |
var empty = jQuery.isEmptyObject( prop ), |
|
7493 |
optall = jQuery.speed( speed, easing, callback ), |
|
7494 |
doAnimation = function() { |
|
7495 |
// Operate on a copy of prop so per-property easing won't be lost |
|
7496 |
var anim = Animation( this, jQuery.extend( {}, prop ), optall ); |
|
7497 | ||
7498 |
// Empty animations, or finishing resolves immediately |
|
7499 |
if ( empty || jQuery._data( this, "finish" ) ) { |
|
7500 |
anim.stop( true ); |
|
7501 |
} |
|
7502 |
}; |
|
7503 |
doAnimation.finish = doAnimation; |
|
7504 | ||
7505 |
return empty || optall.queue === false ? |
|
7506 |
this.each( doAnimation ) : |
|
7507 |
this.queue( optall.queue, doAnimation ); |
|
7508 |
}, |
|
7509 |
stop: function( type, clearQueue, gotoEnd ) { |
|
7510 |
var stopQueue = function( hooks ) { |
|
7511 |
var stop = hooks.stop; |
|
7512 |
delete hooks.stop; |
|
7513 |
stop( gotoEnd ); |
|
7514 |
}; |
|
7515 | ||
7516 |
if ( typeof type !== "string" ) { |
|
7517 |
gotoEnd = clearQueue; |
|
7518 |
clearQueue = type; |
|
7519 |
type = undefined; |
|
7520 |
} |
|
7521 |
if ( clearQueue && type !== false ) { |
|
7522 |
this.queue( type || "fx", [] ); |
|
7523 |
} |
|
7524 | ||
7525 |
return this.each(function() { |
|
7526 |
var dequeue = true, |
|
7527 |
index = type != null && type + "queueHooks", |
|
7528 |
timers = jQuery.timers, |
|
7529 |
data = jQuery._data( this ); |
|
7530 | ||
7531 |
if ( index ) { |
|
7532 |
if ( data[ index ] && data[ index ].stop ) { |
|
7533 |
stopQueue( data[ index ] ); |
|
7534 |
} |
|
7535 |
} else { |
|
7536 |
for ( index in data ) { |
|
7537 |
if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { |
|
7538 |
stopQueue( data[ index ] ); |
|
7539 |
} |
|
7540 |
} |
|
7541 |
} |
|
7542 | ||
7543 |
for ( index = timers.length; index--; ) { |
|
7544 |
if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { |
|
7545 |
timers[ index ].anim.stop( gotoEnd ); |
|
7546 |
dequeue = false; |
|
7547 |
timers.splice( index, 1 ); |
|
7548 |
} |
|
7549 |
} |
|
7550 | ||
7551 |
// start the next in the queue if the last step wasn't forced |
|
7552 |
// timers currently will call their complete callbacks, which will dequeue |
|
7553 |
// but only if they were gotoEnd |
|
7554 |
if ( dequeue || !gotoEnd ) { |
|
7555 |
jQuery.dequeue( this, type ); |
|
7556 |
} |
|
7557 |
}); |
|
7558 |
}, |
|
7559 |
finish: function( type ) { |
|
7560 |
if ( type !== false ) { |
|
7561 |
type = type || "fx"; |
|
7562 |
} |
|
7563 |
return this.each(function() { |
|
7564 |
var index, |
|
7565 |
data = jQuery._data( this ), |
|
7566 |
queue = data[ type + "queue" ], |
|
7567 |
hooks = data[ type + "queueHooks" ], |
|
7568 |
timers = jQuery.timers, |
|
7569 |
length = queue ? queue.length : 0; |
|
7570 | ||
7571 |
// enable finishing flag on private data |
|
7572 |
data.finish = true; |
|
7573 | ||
7574 |
// empty the queue first |
|
7575 |
jQuery.queue( this, type, [] ); |
|
7576 | ||
7577 |
if ( hooks && hooks.stop ) { |
|
7578 |
hooks.stop.call( this, true ); |
|
7579 |
} |
|
7580 | ||
7581 |
// look for any active animations, and finish them |
|
7582 |
for ( index = timers.length; index--; ) { |
|
7583 |
if ( timers[ index ].elem === this && timers[ index ].queue === type ) { |
|
7584 |
timers[ index ].anim.stop( true ); |
|
7585 |
timers.splice( index, 1 ); |
|
7586 |
} |
|
7587 |
} |
|
7588 | ||
7589 |
// look for any animations in the old queue and finish them |
|
7590 |
for ( index = 0; index < length; index++ ) { |
|
7591 |
if ( queue[ index ] && queue[ index ].finish ) { |
|
7592 |
queue[ index ].finish.call( this ); |
|
7593 |
} |
|
7594 |
} |
|
7595 | ||
7596 |
// turn off finishing flag |
|
7597 |
delete data.finish; |
|
7598 |
}); |
|
7599 |
} |
|
7600 |
}); |
|
7601 | ||
7602 |
jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { |
|
7603 |
var cssFn = jQuery.fn[ name ]; |
|
7604 |
jQuery.fn[ name ] = function( speed, easing, callback ) { |
|
7605 |
return speed == null || typeof speed === "boolean" ? |
|
7606 |
cssFn.apply( this, arguments ) : |
|
7607 |
this.animate( genFx( name, true ), speed, easing, callback ); |
|
7608 |
}; |
|
7609 |
}); |
|
7610 | ||
7611 |
// Generate shortcuts for custom animations |
|
7612 |
jQuery.each({ |
|
7613 |
slideDown: genFx("show"), |
|
7614 |
slideUp: genFx("hide"), |
|
7615 |
slideToggle: genFx("toggle"), |
|
7616 |
fadeIn: { opacity: "show" }, |
|
7617 |
fadeOut: { opacity: "hide" }, |
|
7618 |
fadeToggle: { opacity: "toggle" } |
|
7619 |
}, function( name, props ) { |
|
7620 |
jQuery.fn[ name ] = function( speed, easing, callback ) { |
|
7621 |
return this.animate( props, speed, easing, callback ); |
|
7622 |
}; |
|
7623 |
}); |
|
7624 | ||
7625 |
jQuery.timers = []; |
|
7626 |
jQuery.fx.tick = function() { |
|
7627 |
var timer, |
|
7628 |
timers = jQuery.timers, |
|
7629 |
i = 0; |
|
7630 | ||
7631 |
fxNow = jQuery.now(); |
|
7632 | ||
7633 |
for ( ; i < timers.length; i++ ) { |
|
7634 |
timer = timers[ i ]; |
|
7635 |
// Checks the timer has not already been removed |
|
7636 |
if ( !timer() && timers[ i ] === timer ) { |
|
7637 |
timers.splice( i--, 1 ); |
|
7638 |
} |
|
7639 |
} |
|
7640 | ||
7641 |
if ( !timers.length ) { |
|
7642 |
jQuery.fx.stop(); |
|
7643 |
} |
|
7644 |
fxNow = undefined; |
|
7645 |
}; |
|
7646 | ||
7647 |
jQuery.fx.timer = function( timer ) { |
|
7648 |
jQuery.timers.push( timer ); |
|
7649 |
if ( timer() ) { |
|
7650 |
jQuery.fx.start(); |
|
7651 |
} else { |
|
7652 |
jQuery.timers.pop(); |
|
7653 |
} |
|
7654 |
}; |
|
7655 | ||
7656 |
jQuery.fx.interval = 13; |
|
7657 | ||
7658 |
jQuery.fx.start = function() { |
|
7659 |
if ( !timerId ) { |
|
7660 |
timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); |
|
7661 |
} |
|
7662 |
}; |
|
7663 | ||
7664 |
jQuery.fx.stop = function() { |
|
7665 |
clearInterval( timerId ); |
|
7666 |
timerId = null; |
|
7667 |
}; |
|
7668 | ||
7669 |
jQuery.fx.speeds = { |
|
7670 |
slow: 600, |
|
7671 |
fast: 200, |
|
7672 |
// Default speed |
|
7673 |
_default: 400 |
|
7674 |
}; |
|
7675 | ||
7676 | ||
7677 |
// Based off of the plugin by Clint Helfers, with permission. |
|
7678 |
// http://blindsignals.com/index.php/2009/07/jquery-delay/ |
|
7679 |
jQuery.fn.delay = function( time, type ) { |
|
7680 |
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; |
|
7681 |
type = type || "fx"; |
|
7682 | ||
7683 |
return this.queue( type, function( next, hooks ) { |
|
7684 |
var timeout = setTimeout( next, time ); |
|
7685 |
hooks.stop = function() { |
|
7686 |
clearTimeout( timeout ); |
|
7687 |
}; |
|
7688 |
}); |
|
7689 |
}; |
|
7690 | ||
7691 | ||
7692 |
(function() { |
|
7693 |
var a, input, select, opt, |
|
7694 |
div = document.createElement("div" ); |
|
7695 | ||
7696 |
// Setup |
|
7697 |
div.setAttribute( "className", "t" ); |
|
7698 |
div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; |
|
7699 |
a = div.getElementsByTagName("a")[ 0 ]; |
|
7700 | ||
7701 |
// First batch of tests. |
|
7702 |
select = document.createElement("select"); |
|
7703 |
opt = select.appendChild( document.createElement("option") ); |
|
7704 |
input = div.getElementsByTagName("input")[ 0 ]; |
|
7705 | ||
7706 |
a.style.cssText = "top:1px"; |
|
7707 | ||
7708 |
// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) |
|
7709 |
support.getSetAttribute = div.className !== "t"; |
|
7710 | ||
7711 |
// Get the style information from getAttribute |
|
7712 |
// (IE uses .cssText instead) |
|
7713 |
support.style = /top/.test( a.getAttribute("style") ); |
|
7714 | ||
7715 |
// Make sure that URLs aren't manipulated |
|
7716 |
// (IE normalizes it by default) |
|
7717 |
support.hrefNormalized = a.getAttribute("href") === "/a"; |
|
7718 | ||
7719 |
// Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) |
|
7720 |
support.checkOn = !!input.value; |
|
7721 | ||
7722 |
// Make sure that a selected-by-default option has a working selected property. |
|
7723 |
// (WebKit defaults to false instead of true, IE too, if it's in an optgroup) |
|
7724 |
support.optSelected = opt.selected; |
|
7725 | ||
7726 |
// Tests for enctype support on a form (#6743) |
|
7727 |
support.enctype = !!document.createElement("form").enctype; |
|
7728 | ||
7729 |
// Make sure that the options inside disabled selects aren't marked as disabled |
|
7730 |
// (WebKit marks them as disabled) |
|
7731 |
select.disabled = true; |
|
7732 |
support.optDisabled = !opt.disabled; |
|
7733 | ||
7734 |
// Support: IE8 only |
|
7735 |
// Check if we can trust getAttribute("value") |
|
7736 |
input = document.createElement( "input" ); |
|
7737 |
input.setAttribute( "value", "" ); |
|
7738 |
support.input = input.getAttribute( "value" ) === ""; |
|
7739 | ||
7740 |
// Check if an input maintains its value after becoming a radio |
|
7741 |
input.value = "t"; |
|
7742 |
input.setAttribute( "type", "radio" ); |
|
7743 |
support.radioValue = input.value === "t"; |
|
7744 | ||
7745 |
// Null elements to avoid leaks in IE. |
|
7746 |
a = input = select = opt = div = null; |
|
7747 |
})(); |
|
7748 | ||
7749 | ||
7750 |
var rreturn = /\r/g; |
|
7751 | ||
7752 |
jQuery.fn.extend({ |
|
7753 |
val: function( value ) { |
|
7754 |
var hooks, ret, isFunction, |
|
7755 |
elem = this[0]; |
|
7756 | ||
7757 |
if ( !arguments.length ) { |
|
7758 |
if ( elem ) { |
|
7759 |
hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; |
|
7760 | ||
7761 |
if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { |
|
7762 |
return ret; |
|
7763 |
} |
|
7764 | ||
7765 |
ret = elem.value; |
|
7766 | ||
7767 |
return typeof ret === "string" ? |
|
7768 |
// handle most common string cases |
|
7769 |
ret.replace(rreturn, "") : |
|
7770 |
// handle cases where value is null/undef or number |
|
7771 |
ret == null ? "" : ret; |
|
7772 |
} |
|
7773 | ||
7774 |
return; |
|
7775 |
} |
|
7776 | ||
7777 |
isFunction = jQuery.isFunction( value ); |
|
7778 | ||
7779 |
return this.each(function( i ) { |
|
7780 |
var val; |
|
7781 | ||
7782 |
if ( this.nodeType !== 1 ) { |
|
7783 |
return; |
|
7784 |
} |
|
7785 | ||
7786 |
if ( isFunction ) { |
|
7787 |
val = value.call( this, i, jQuery( this ).val() ); |
|
7788 |
} else { |
|
7789 |
val = value; |
|
7790 |
} |
|
7791 | ||
7792 |
// Treat null/undefined as ""; convert numbers to string |
|
7793 |
if ( val == null ) { |
|
7794 |
val = ""; |
|
7795 |
} else if ( typeof val === "number" ) { |
|
7796 |
val += ""; |
|
7797 |
} else if ( jQuery.isArray( val ) ) { |
|
7798 |
val = jQuery.map( val, function( value ) { |
|
7799 |
return value == null ? "" : value + ""; |
|
7800 |
}); |
|
7801 |
} |
|
7802 | ||
7803 |
hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; |
|
7804 | ||
7805 |
// If set returns undefined, fall back to normal setting |
|
7806 |
if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { |
|
7807 |
this.value = val; |
|
7808 |
} |
|
7809 |
}); |
|
7810 |
} |
|
7811 |
}); |
|
7812 | ||
7813 |
jQuery.extend({ |
|
7814 |
valHooks: { |
|
7815 |
option: { |
|
7816 |
get: function( elem ) { |
|
7817 |
var val = jQuery.find.attr( elem, "value" ); |
|
7818 |
return val != null ? |
|
7819 |
val : |
|
7820 |
jQuery.text( elem ); |
|
7821 |
} |
|
7822 |
}, |
|
7823 |
select: { |
|
7824 |
get: function( elem ) { |
|
7825 |
var value, option, |
|
7826 |
options = elem.options, |
|
7827 |
index = elem.selectedIndex, |
|
7828 |
one = elem.type === "select-one" || index < 0, |
|
7829 |
values = one ? null : [], |
|
7830 |
max = one ? index + 1 : options.length, |
|
7831 |
i = index < 0 ? |
|
7832 |
max : |
|
7833 |
one ? index : 0; |
|
7834 | ||
7835 |
// Loop through all the selected options |
|
7836 |
for ( ; i < max; i++ ) { |
|
7837 |
option = options[ i ]; |
|
7838 | ||
7839 |
// oldIE doesn't update selected after form reset (#2551) |
|
7840 |
if ( ( option.selected || i === index ) && |
|
7841 |
// Don't return options that are disabled or in a disabled optgroup |
|
7842 |
( support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && |
|
7843 |
( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { |
|
7844 | ||
7845 |
// Get the specific value for the option |
|
7846 |
value = jQuery( option ).val(); |
|
7847 | ||
7848 |
// We don't need an array for one selects |
|
7849 |
if ( one ) { |
|
7850 |
return value; |
|
7851 |
} |
|
7852 | ||
7853 |
// Multi-Selects return an array |
|
7854 |
values.push( value ); |
|
7855 |
} |
|
7856 |
} |
|
7857 | ||
7858 |
return values; |
|
7859 |
}, |
|
7860 | ||
7861 |
set: function( elem, value ) { |
|
7862 |
var optionSet, option, |
|
7863 |
options = elem.options, |
|
7864 |
values = jQuery.makeArray( value ), |
|
7865 |
i = options.length; |
|
7866 | ||
7867 |
while ( i-- ) { |
|
7868 |
option = options[ i ]; |
|
7869 | ||
7870 |
if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) { |
|
7871 | ||
7872 |
// Support: IE6 |
|
7873 |
// When new option element is added to select box we need to |
|
7874 |
// force reflow of newly added node in order to workaround delay |
|
7875 |
// of initialization properties |
|
7876 |
try { |
|
7877 |
option.selected = optionSet = true; |
|
7878 | ||
7879 |
} catch ( _ ) { |
|
7880 | ||
7881 |
// Will be executed only in IE6 |
|
7882 |
option.scrollHeight; |
|
7883 |
} |
|
7884 | ||
7885 |
} else { |
|
7886 |
option.selected = false; |
|
7887 |
} |
|
7888 |
} |
|
7889 | ||
7890 |
// Force browsers to behave consistently when non-matching value is set |
|
7891 |
if ( !optionSet ) { |
|
7892 |
elem.selectedIndex = -1; |
|
7893 |
} |
|
7894 | ||
7895 |
return options; |
|
7896 |
} |
|
7897 |
} |
|
7898 |
} |
|
7899 |
}); |
|
7900 | ||
7901 |
// Radios and checkboxes getter/setter |
|
7902 |
jQuery.each([ "radio", "checkbox" ], function() { |
|
7903 |
jQuery.valHooks[ this ] = { |
|
7904 |
set: function( elem, value ) { |
|
7905 |
if ( jQuery.isArray( value ) ) { |
|
7906 |
return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); |
|
7907 |
} |
|
7908 |
} |
|
7909 |
}; |
|
7910 |
if ( !support.checkOn ) { |
|
7911 |
jQuery.valHooks[ this ].get = function( elem ) { |
|
7912 |
// Support: Webkit |
|
7913 |
// "" is returned instead of "on" if a value isn't specified |
|
7914 |
return elem.getAttribute("value") === null ? "on" : elem.value; |
|
7915 |
}; |
|
7916 |
} |
|
7917 |
}); |
|
7918 | ||
7919 | ||
7920 | ||
7921 | ||
7922 |
var nodeHook, boolHook, |
|
7923 |
attrHandle = jQuery.expr.attrHandle, |
|
7924 |
ruseDefault = /^(?:checked|selected)$/i, |
|
7925 |
getSetAttribute = support.getSetAttribute, |
|
7926 |
getSetInput = support.input; |
|
7927 | ||
7928 |
jQuery.fn.extend({ |
|
7929 |
attr: function( name, value ) { |
|
7930 |
return access( this, jQuery.attr, name, value, arguments.length > 1 ); |
|
7931 |
}, |
|
7932 | ||
7933 |
removeAttr: function( name ) { |
|
7934 |
return this.each(function() { |
|
7935 |
jQuery.removeAttr( this, name ); |
|
7936 |
}); |
|
7937 |
} |
|
7938 |
}); |
|
7939 | ||
7940 |
jQuery.extend({ |
|
7941 |
attr: function( elem, name, value ) { |
|
7942 |
var hooks, ret, |
|
7943 |
nType = elem.nodeType; |
|
7944 | ||
7945 |
// don't get/set attributes on text, comment and attribute nodes |
|
7946 |
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { |
|
7947 |
return; |
|
7948 |
} |
|
7949 | ||
7950 |
// Fallback to prop when attributes are not supported |
|
7951 |
if ( typeof elem.getAttribute === strundefined ) { |
|
7952 |
return jQuery.prop( elem, name, value ); |
|
7953 |
} |
|
7954 | ||
7955 |
// All attributes are lowercase |
|
7956 |
// Grab necessary hook if one is defined |
|
7957 |
if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { |
|
7958 |
name = name.toLowerCase(); |
|
7959 |
hooks = jQuery.attrHooks[ name ] || |
|
7960 |
( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); |
|
7961 |
} |
|
7962 | ||
7963 |
if ( value !== undefined ) { |
|
7964 | ||
7965 |
if ( value === null ) { |
|
7966 |
jQuery.removeAttr( elem, name ); |
|
7967 | ||
7968 |
} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { |
|
7969 |
return ret; |
|
7970 | ||
7971 |
} else { |
|
7972 |
elem.setAttribute( name, value + "" ); |
|
7973 |
return value; |
|
7974 |
} |
|
7975 | ||
7976 |
} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { |
|
7977 |
return ret; |
|
7978 | ||
7979 |
} else { |
|
7980 |
ret = jQuery.find.attr( elem, name ); |
|
7981 | ||
7982 |
// Non-existent attributes return null, we normalize to undefined |
|
7983 |
return ret == null ? |
|
7984 |
undefined : |
|
7985 |
ret; |
|
7986 |
} |
|
7987 |
}, |
|
7988 | ||
7989 |
removeAttr: function( elem, value ) { |
|
7990 |
var name, propName, |
|
7991 |
i = 0, |
|
7992 |
attrNames = value && value.match( rnotwhite ); |
|
7993 | ||
7994 |
if ( attrNames && elem.nodeType === 1 ) { |
|
7995 |
while ( (name = attrNames[i++]) ) { |
|
7996 |
propName = jQuery.propFix[ name ] || name; |
|
7997 | ||
7998 |
// Boolean attributes get special treatment (#10870) |
|
7999 |
if ( jQuery.expr.match.bool.test( name ) ) { |
|
8000 |
// Set corresponding property to false |
|
8001 |
if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { |
|
8002 |
elem[ propName ] = false; |
|
8003 |
// Support: IE<9 |
|
8004 |
// Also clear defaultChecked/defaultSelected (if appropriate) |
|
8005 |
} else { |
|
8006 |
elem[ jQuery.camelCase( "default-" + name ) ] = |
|
8007 |
elem[ propName ] = false; |
|
8008 |
} |
|
8009 | ||
8010 |
// See #9699 for explanation of this approach (setting first, then removal) |
|
8011 |
} else { |
|
8012 |
jQuery.attr( elem, name, "" ); |
|
8013 |
} |
|
8014 | ||
8015 |
elem.removeAttribute( getSetAttribute ? name : propName ); |
|
8016 |
} |
|
8017 |
} |
|
8018 |
}, |
|
8019 | ||
8020 |
attrHooks: { |
|
8021 |
type: { |
|
8022 |
set: function( elem, value ) { |
|
8023 |
if ( !support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { |
|
8024 |
// Setting the type on a radio button after the value resets the value in IE6-9 |
|
8025 |
// Reset value to default in case type is set after value during creation |
|
8026 |
var val = elem.value; |
|
8027 |
elem.setAttribute( "type", value ); |
|
8028 |
if ( val ) { |
|
8029 |
elem.value = val; |
|
8030 |
} |
|
8031 |
return value; |
|
8032 |
} |
|
8033 |
} |
|
8034 |
} |
|
8035 |
} |
|
8036 |
}); |
|
8037 | ||
8038 |
// Hook for boolean attributes |
|
8039 |
boolHook = { |
|
8040 |
set: function( elem, value, name ) { |
|
8041 |
if ( value === false ) { |
|
8042 |
// Remove boolean attributes when set to false |
|
8043 |
jQuery.removeAttr( elem, name ); |
|
8044 |
} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { |
|
8045 |
// IE<8 needs the *property* name |
|
8046 |
elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); |
|
8047 | ||
8048 |
// Use defaultChecked and defaultSelected for oldIE |
|
8049 |
} else { |
|
8050 |
elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; |
|
8051 |
} |
|
8052 | ||
8053 |
return name; |
|
8054 |
} |
|
8055 |
}; |
|
8056 | ||
8057 |
// Retrieve booleans specially |
|
8058 |
jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { |
|
8059 | ||
8060 |
var getter = attrHandle[ name ] || jQuery.find.attr; |
|
8061 | ||
8062 |
attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? |
|
8063 |
function( elem, name, isXML ) { |
|
8064 |
var ret, handle; |
|
8065 |
if ( !isXML ) { |
|
8066 |
// Avoid an infinite loop by temporarily removing this function from the getter |
|
8067 |
handle = attrHandle[ name ]; |
|
8068 |
attrHandle[ name ] = ret; |
|
8069 |
ret = getter( elem, name, isXML ) != null ? |
|
8070 |
name.toLowerCase() : |
|
8071 |
null; |
|
8072 |
attrHandle[ name ] = handle; |
|
8073 |
} |
|
8074 |
return ret; |
|
8075 |
} : |
|
8076 |
function( elem, name, isXML ) { |
|
8077 |
if ( !isXML ) { |
|
8078 |
return elem[ jQuery.camelCase( "default-" + name ) ] ? |
|
8079 |
name.toLowerCase() : |
|
8080 |
null; |
|
8081 |
} |
|
8082 |
}; |
|
8083 |
}); |
|
8084 | ||
8085 |
// fix oldIE attroperties |
|
8086 |
if ( !getSetInput || !getSetAttribute ) { |
|
8087 |
jQuery.attrHooks.value = { |
|
8088 |
set: function( elem, value, name ) { |
|
8089 |
if ( jQuery.nodeName( elem, "input" ) ) { |
|
8090 |
// Does not return so that setAttribute is also used |
|
8091 |
elem.defaultValue = value; |
|
8092 |
} else { |
|
8093 |
// Use nodeHook if defined (#1954); otherwise setAttribute is fine |
|
8094 |
return nodeHook && nodeHook.set( elem, value, name ); |
|
8095 |
} |
|
8096 |
} |
|
8097 |
}; |
|
8098 |
} |
|
8099 | ||
8100 |
// IE6/7 do not support getting/setting some attributes with get/setAttribute |
|
8101 |
if ( !getSetAttribute ) { |
|
8102 | ||
8103 |
// Use this for any attribute in IE6/7 |
|
8104 |
// This fixes almost every IE6/7 issue |
|
8105 |
nodeHook = { |
|
8106 |
set: function( elem, value, name ) { |
|
8107 |
// Set the existing or create a new attribute node |
|
8108 |
var ret = elem.getAttributeNode( name ); |
|
8109 |
if ( !ret ) { |
|
8110 |
elem.setAttributeNode( |
|
8111 |
(ret = elem.ownerDocument.createAttribute( name )) |
|
8112 |
); |
|
8113 |
} |
|
8114 | ||
8115 |
ret.value = value += ""; |
|
8116 | ||
8117 |
// Break association with cloned elements by also using setAttribute (#9646) |
|
8118 |
if ( name === "value" || value === elem.getAttribute( name ) ) { |
|
8119 |
return value; |
|
8120 |
} |
|
8121 |
} |
|
8122 |
}; |
|
8123 | ||
8124 |
// Some attributes are constructed with empty-string values when not defined |
|
8125 |
attrHandle.id = attrHandle.name = attrHandle.coords = |
|
8126 |
function( elem, name, isXML ) { |
|
8127 |
var ret; |
|
8128 |
if ( !isXML ) { |
|
8129 |
return (ret = elem.getAttributeNode( name )) && ret.value !== "" ? |
|
8130 |
ret.value : |
|
8131 |
null; |
|
8132 |
} |
|
8133 |
}; |
|
8134 | ||
8135 |
// Fixing value retrieval on a button requires this module |
|
8136 |
jQuery.valHooks.button = { |
|
8137 |
get: function( elem, name ) { |
|
8138 |
var ret = elem.getAttributeNode( name ); |
|
8139 |
if ( ret && ret.specified ) { |
|
8140 |
return ret.value; |
|
8141 |
} |
|
8142 |
}, |
|
8143 |
set: nodeHook.set |
|
8144 |
}; |
|
8145 | ||
8146 |
// Set contenteditable to false on removals(#10429) |
|
8147 |
// Setting to empty string throws an error as an invalid value |
|
8148 |
jQuery.attrHooks.contenteditable = { |
|
8149 |
set: function( elem, value, name ) { |
|
8150 |
nodeHook.set( elem, value === "" ? false : value, name ); |
|
8151 |
} |
|
8152 |
}; |
|
8153 | ||
8154 |
// Set width and height to auto instead of 0 on empty string( Bug #8150 ) |
|
8155 |
// This is for removals |
|
8156 |
jQuery.each([ "width", "height" ], function( i, name ) { |
|
8157 |
jQuery.attrHooks[ name ] = { |
|
8158 |
set: function( elem, value ) { |
|
8159 |
if ( value === "" ) { |
|
8160 |
elem.setAttribute( name, "auto" ); |
|
8161 |
return value; |
|
8162 |
} |
|
8163 |
} |
|
8164 |
}; |
|
8165 |
}); |
|
8166 |
} |
|
8167 | ||
8168 |
if ( !support.style ) { |
|
8169 |
jQuery.attrHooks.style = { |
|
8170 |
get: function( elem ) { |
|
8171 |
// Return undefined in the case of empty string |
|
8172 |
// Note: IE uppercases css property names, but if we were to .toLowerCase() |
|
8173 |
// .cssText, that would destroy case senstitivity in URL's, like in "background" |
|
8174 |
return elem.style.cssText || undefined; |
|
8175 |
}, |
|
8176 |
set: function( elem, value ) { |
|
8177 |
return ( elem.style.cssText = value + "" ); |
|
8178 |
} |
|
8179 |
}; |
|
8180 |
} |
|
8181 | ||
8182 | ||
8183 | ||
8184 | ||
8185 |
var rfocusable = /^(?:input|select|textarea|button|object)$/i, |
|
8186 |
rclickable = /^(?:a|area)$/i; |
|
8187 | ||
8188 |
jQuery.fn.extend({ |
|
8189 |
prop: function( name, value ) { |
|
8190 |
return access( this, jQuery.prop, name, value, arguments.length > 1 ); |
|
8191 |
}, |
|
8192 | ||
8193 |
removeProp: function( name ) { |
|
8194 |
name = jQuery.propFix[ name ] || name; |
|
8195 |
return this.each(function() { |
|
8196 |
// try/catch handles cases where IE balks (such as removing a property on window) |
|
8197 |
try { |
|
8198 |
this[ name ] = undefined; |
|
8199 |
delete this[ name ]; |
|
8200 |
} catch( e ) {} |
|
8201 |
}); |
|
8202 |
} |
|
8203 |
}); |
|
8204 | ||
8205 |
jQuery.extend({ |
|
8206 |
propFix: { |
|
8207 |
"for": "htmlFor", |
|
8208 |
"class": "className" |
|
8209 |
}, |
|
8210 | ||
8211 |
prop: function( elem, name, value ) { |
|
8212 |
var ret, hooks, notxml, |
|
8213 |
nType = elem.nodeType; |
|
8214 | ||
8215 |
// don't get/set properties on text, comment and attribute nodes |
|
8216 |
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { |
|
8217 |
return; |
|
8218 |
} |
|
8219 | ||
8220 |
notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); |
|
8221 | ||
8222 |
if ( notxml ) { |
|
8223 |
// Fix name and attach hooks |
|
8224 |
name = jQuery.propFix[ name ] || name; |
|
8225 |
hooks = jQuery.propHooks[ name ]; |
|
8226 |
} |
|
8227 | ||
8228 |
if ( value !== undefined ) { |
|
8229 |
return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? |
|
8230 |
ret : |
|
8231 |
( elem[ name ] = value ); |
|
8232 | ||
8233 |
} else { |
|
8234 |
return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? |
|
8235 |
ret : |
|
8236 |
elem[ name ]; |
|
8237 |
} |
|
8238 |
}, |
|
8239 | ||
8240 |
propHooks: { |
|
8241 |
tabIndex: { |
|
8242 |
get: function( elem ) { |
|
8243 |
// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set |
|
8244 |
// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ |
|
8245 |
// Use proper attribute retrieval(#12072) |
|
8246 |
var tabindex = jQuery.find.attr( elem, "tabindex" ); |
|
8247 | ||
8248 |
return tabindex ? |
|
8249 |
parseInt( tabindex, 10 ) : |
|
8250 |
rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? |
|
8251 |
0 : |
|
8252 |
-1; |
|
8253 |
} |
|
8254 |
} |
|
8255 |
} |
|
8256 |
}); |
|
8257 | ||
8258 |
// Some attributes require a special call on IE |
|
8259 |
// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx |
|
8260 |
if ( !support.hrefNormalized ) { |
|
8261 |
// href/src property should get the full normalized URL (#10299/#12915) |
|
8262 |
jQuery.each([ "href", "src" ], function( i, name ) { |
|
8263 |
jQuery.propHooks[ name ] = { |
|
8264 |
get: function( elem ) { |
|
8265 |
return elem.getAttribute( name, 4 ); |
|
8266 |
} |
|
8267 |
}; |
|
8268 |
}); |
|
8269 |
} |
|
8270 | ||
8271 |
// Support: Safari, IE9+ |
|
8272 |
// mis-reports the default selected property of an option |
|
8273 |
// Accessing the parent's selectedIndex property fixes it |
|
8274 |
if ( !support.optSelected ) { |
|
8275 |
jQuery.propHooks.selected = { |
|
8276 |
get: function( elem ) { |
|
8277 |
var parent = elem.parentNode; |
|
8278 | ||
8279 |
if ( parent ) { |
|
8280 |
parent.selectedIndex; |
|
8281 | ||
8282 |
// Make sure that it also works with optgroups, see #5701 |
|
8283 |
if ( parent.parentNode ) { |
|
8284 |
parent.parentNode.selectedIndex; |
|
8285 |
} |
|
8286 |
} |
|
8287 |
return null; |
|
8288 |
} |
|
8289 |
}; |
|
8290 |
} |
|
8291 | ||
8292 |
jQuery.each([ |
|
8293 |
"tabIndex", |
|
8294 |
"readOnly", |
|
8295 |
"maxLength", |
|
8296 |
"cellSpacing", |
|
8297 |
"cellPadding", |
|
8298 |
"rowSpan", |
|
8299 |
"colSpan", |
|
8300 |
"useMap", |
|
8301 |
"frameBorder", |
|
8302 |
"contentEditable" |
|
8303 |
], function() { |
|
8304 |
jQuery.propFix[ this.toLowerCase() ] = this; |
|
8305 |
}); |
|
8306 | ||
8307 |
// IE6/7 call enctype encoding |
|
8308 |
if ( !support.enctype ) { |
|
8309 |
jQuery.propFix.enctype = "encoding"; |
|
8310 |
} |
|
8311 | ||
8312 | ||
8313 | ||
8314 | ||
8315 |
var rclass = /[\t\r\n\f]/g; |
|
8316 | ||
8317 |
jQuery.fn.extend({ |
|
8318 |
addClass: function( value ) { |
|
8319 |
var classes, elem, cur, clazz, j, finalValue, |
|
8320 |
i = 0, |
|
8321 |
len = this.length, |
|
8322 |
proceed = typeof value === "string" && value; |
|
8323 | ||
8324 |
if ( jQuery.isFunction( value ) ) { |
|
8325 |
return this.each(function( j ) { |
|
8326 |
jQuery( this ).addClass( value.call( this, j, this.className ) ); |
|
8327 |
}); |
|
8328 |
} |
|
8329 | ||
8330 |
if ( proceed ) { |
|
8331 |
// The disjunction here is for better compressibility (see removeClass) |
|
8332 |
classes = ( value || "" ).match( rnotwhite ) || []; |
|
8333 | ||
8334 |
for ( ; i < len; i++ ) { |
|
8335 |
elem = this[ i ]; |
|
8336 |
cur = elem.nodeType === 1 && ( elem.className ? |
|
8337 |
( " " + elem.className + " " ).replace( rclass, " " ) : |
|
8338 |
" " |
|
8339 |
); |
|
8340 | ||
8341 |
if ( cur ) { |
|
8342 |
j = 0; |
|
8343 |
while ( (clazz = classes[j++]) ) { |
|
8344 |
if ( cur.indexOf( " " + clazz + " " ) < 0 ) { |
|
8345 |
cur += clazz + " "; |
|
8346 |
} |
|
8347 |
} |
|
8348 | ||
8349 |
// only assign if different to avoid unneeded rendering. |
|
8350 |
finalValue = jQuery.trim( cur ); |
|
8351 |
if ( elem.className !== finalValue ) { |
|
8352 |
elem.className = finalValue; |
|
8353 |
} |
|
8354 |
} |
|
8355 |
} |
|
8356 |
} |
|
8357 | ||
8358 |
return this; |
|
8359 |
}, |
|
8360 | ||
8361 |
removeClass: function( value ) { |
|
8362 |
var classes, elem, cur, clazz, j, finalValue, |
|
8363 |
i = 0, |
|
8364 |
len = this.length, |
|
8365 |
proceed = arguments.length === 0 || typeof value === "string" && value; |
|
8366 | ||
8367 |
if ( jQuery.isFunction( value ) ) { |
|
8368 |
return this.each(function( j ) { |
|
8369 |
jQuery( this ).removeClass( value.call( this, j, this.className ) ); |
|
8370 |
}); |
|
8371 |
} |
|
8372 |
if ( proceed ) { |
|
8373 |
classes = ( value || "" ).match( rnotwhite ) || []; |
|
8374 | ||
8375 |
for ( ; i < len; i++ ) { |
|
8376 |
elem = this[ i ]; |
|
8377 |
// This expression is here for better compressibility (see addClass) |
|
8378 |
cur = elem.nodeType === 1 && ( elem.className ? |
|
8379 |
( " " + elem.className + " " ).replace( rclass, " " ) : |
|
8380 |
"" |
|
8381 |
); |
|
8382 | ||
8383 |
if ( cur ) { |
|
8384 |
j = 0; |
|
8385 |
while ( (clazz = classes[j++]) ) { |
|
8386 |
// Remove *all* instances |
|
8387 |
while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { |
|
8388 |
cur = cur.replace( " " + clazz + " ", " " ); |
|
8389 |
} |
|
8390 |
} |
|
8391 | ||
8392 |
// only assign if different to avoid unneeded rendering. |
|
8393 |
finalValue = value ? jQuery.trim( cur ) : ""; |
|
8394 |
if ( elem.className !== finalValue ) { |
|
8395 |
elem.className = finalValue; |
|
8396 |
} |
|
8397 |
} |
|
8398 |
} |
|
8399 |
} |
|
8400 | ||
8401 |
return this; |
|
8402 |
}, |
|
8403 | ||
8404 |
toggleClass: function( value, stateVal ) { |
|
8405 |
var type = typeof value; |
|
8406 | ||
8407 |
if ( typeof stateVal === "boolean" && type === "string" ) { |
|
8408 |
return stateVal ? this.addClass( value ) : this.removeClass( value ); |
|
8409 |
} |
|
8410 | ||
8411 |
if ( jQuery.isFunction( value ) ) { |
|
8412 |
return this.each(function( i ) { |
|
8413 |
jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); |
|
8414 |
}); |
|
8415 |
} |
|
8416 | ||
8417 |
return this.each(function() { |
|
8418 |
if ( type === "string" ) { |
|
8419 |
// toggle individual class names |
|
8420 |
var className, |
|
8421 |
i = 0, |
|
8422 |
self = jQuery( this ), |
|
8423 |
classNames = value.match( rnotwhite ) || []; |
|
8424 | ||
8425 |
while ( (className = classNames[ i++ ]) ) { |
|
8426 |
// check each className given, space separated list |
|
8427 |
if ( self.hasClass( className ) ) { |
|
8428 |
self.removeClass( className ); |
|
8429 |
} else { |
|
8430 |
self.addClass( className ); |
|
8431 |
} |
|
8432 |
} |
|
8433 | ||
8434 |
// Toggle whole class name |
|
8435 |
} else if ( type === strundefined || type === "boolean" ) { |
|
8436 |
if ( this.className ) { |
|
8437 |
// store className if set |
|
8438 |
jQuery._data( this, "__className__", this.className ); |
|
8439 |
} |
|
8440 | ||
8441 |
// If the element has a class name or if we're passed "false", |
|
8442 |
// then remove the whole classname (if there was one, the above saved it). |
|
8443 |
// Otherwise bring back whatever was previously saved (if anything), |
|
8444 |
// falling back to the empty string if nothing was stored. |
|
8445 |
this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; |
|
8446 |
} |
|
8447 |
}); |
|
8448 |
}, |
|
8449 | ||
8450 |
hasClass: function( selector ) { |
|
8451 |
var className = " " + selector + " ", |
|
8452 |
i = 0, |
|
8453 |
l = this.length; |
|
8454 |
for ( ; i < l; i++ ) { |
|
8455 |
if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { |
|
8456 |
return true; |
|
8457 |
} |
|
8458 |
} |
|
8459 | ||
8460 |
return false; |
|
8461 |
} |
|
8462 |
}); |
|
8463 | ||
8464 | ||
8465 | ||
8466 | ||
8467 |
// Return jQuery for attributes-only inclusion |
|
8468 | ||
8469 | ||
8470 |
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + |
|
8471 |
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + |
|
8472 |
"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { |
|
8473 | ||
8474 |
// Handle event binding |
|
8475 |
jQuery.fn[ name ] = function( data, fn ) { |
|
8476 |
return arguments.length > 0 ? |
|
8477 |
this.on( name, null, data, fn ) : |
|
8478 |
this.trigger( name ); |
|
8479 |
}; |
|
8480 |
}); |
|
8481 | ||
8482 |
jQuery.fn.extend({ |
|
8483 |
hover: function( fnOver, fnOut ) { |
|
8484 |
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); |
|
8485 |
}, |
|
8486 | ||
8487 |
bind: function( types, data, fn ) { |
|
8488 |
return this.on( types, null, data, fn ); |
|
8489 |
}, |
|
8490 |
unbind: function( types, fn ) { |
|
8491 |
return this.off( types, null, fn ); |
|
8492 |
}, |
|
8493 | ||
8494 |
delegate: function( selector, types, data, fn ) { |
|
8495 |
return this.on( types, selector, data, fn ); |
|
8496 |
}, |
|
8497 |
undelegate: function( selector, types, fn ) { |
|
8498 |
// ( namespace ) or ( selector, types [, fn] ) |
|
8499 |
return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); |
|
8500 |
} |
|
8501 |
}); |
|
8502 | ||
8503 | ||
8504 |
var nonce = jQuery.now(); |
|
8505 | ||
8506 |
var rquery = (/\?/); |
|
8507 | ||
8508 | ||
8509 | ||
8510 |
var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; |
|
8511 | ||
8512 |
jQuery.parseJSON = function( data ) { |
|
8513 |
// Attempt to parse using the native JSON parser first |
|
8514 |
if ( window.JSON && window.JSON.parse ) { |
|
8515 |
// Support: Android 2.3 |
|
8516 |
// Workaround failure to string-cast null input |
|
8517 |
return window.JSON.parse( data + "" ); |
|
8518 |
} |
|
8519 | ||
8520 |
var requireNonComma, |
|
8521 |
depth = null, |
|
8522 |
str = jQuery.trim( data + "" ); |
|
8523 | ||
8524 |
// Guard against invalid (and possibly dangerous) input by ensuring that nothing remains |
|
8525 |
// after removing valid tokens |
|
8526 |
return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) { |
|
8527 | ||
8528 |
// Force termination if we see a misplaced comma |
|
8529 |
if ( requireNonComma && comma ) { |
|
8530 |
depth = 0; |
|
8531 |
} |
|
8532 | ||
8533 |
// Perform no more replacements after returning to outermost depth |
|
8534 |
if ( depth === 0 ) { |
|
8535 |
return token; |
|
8536 |
} |
|
8537 | ||
8538 |
// Commas must not follow "[", "{", or "," |
|
8539 |
requireNonComma = open || comma; |
|
8540 | ||
8541 |
// Determine new depth |
|
8542 |
// array/object open ("[" or "{"): depth += true - false (increment) |
|
8543 |
// array/object close ("]" or "}"): depth += false - true (decrement) |
|
8544 |
// other cases ("," or primitive): depth += true - true (numeric cast) |
|
8545 |
depth += !close - !open; |
|
8546 | ||
8547 |
// Remove this token |
|
8548 |
return ""; |
|
8549 |
}) ) ? |
|
8550 |
( Function( "return " + str ) )() : |
|
8551 |
jQuery.error( "Invalid JSON: " + data ); |
|
8552 |
}; |
|
8553 | ||
8554 | ||
8555 |
// Cross-browser xml parsing |
|
8556 |
jQuery.parseXML = function( data ) { |
|
8557 |
var xml, tmp; |
|
8558 |
if ( !data || typeof data !== "string" ) { |
|
8559 |
return null; |
|
8560 |
} |
|
8561 |
try { |
|
8562 |
if ( window.DOMParser ) { // Standard |
|
8563 |
tmp = new DOMParser(); |
|
8564 |
xml = tmp.parseFromString( data, "text/xml" ); |
|
8565 |
} else { // IE |
|
8566 |
xml = new ActiveXObject( "Microsoft.XMLDOM" ); |
|
8567 |
xml.async = "false"; |
|
8568 |
xml.loadXML( data ); |
|
8569 |
} |
|
8570 |
} catch( e ) { |
|
8571 |
xml = undefined; |
|
8572 |
} |
|
8573 |
if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { |
|
8574 |
jQuery.error( "Invalid XML: " + data ); |
|
8575 |
} |
|
8576 |
return xml; |
|
8577 |
}; |
|
8578 | ||
8579 | ||
8580 |
var |
|
8581 |
// Document location |
|
8582 |
ajaxLocParts, |
|
8583 |
ajaxLocation, |
|
8584 | ||
8585 |
rhash = /#.*$/, |
|
8586 |
rts = /([?&])_=[^&]*/, |
|
8587 |
rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL |
|
8588 |
// #7653, #8125, #8152: local protocol detection |
|
8589 |
rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, |
|
8590 |
rnoContent = /^(?:GET|HEAD)$/, |
|
8591 |
rprotocol = /^\/\//, |
|
8592 |
rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, |
|
8593 | ||
8594 |
/* Prefilters |
|
8595 |
* 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) |
|
8596 |
* 2) These are called: |
|
8597 |
* - BEFORE asking for a transport |
|
8598 |
* - AFTER param serialization (s.data is a string if s.processData is true) |
|
8599 |
* 3) key is the dataType |
|
8600 |
* 4) the catchall symbol "*" can be used |
|
8601 |
* 5) execution will start with transport dataType and THEN continue down to "*" if needed |
|
8602 |
*/ |
|
8603 |
prefilters = {}, |
|
8604 | ||
8605 |
/* Transports bindings |
|
8606 |
* 1) key is the dataType |
|
8607 |
* 2) the catchall symbol "*" can be used |
|
8608 |
* 3) selection will start with transport dataType and THEN go to "*" if needed |
|
8609 |
*/ |
|
8610 |
transports = {}, |
|
8611 | ||
8612 |
// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression |
|
8613 |
allTypes = "*/".concat("*"); |
|
8614 | ||
8615 |
// #8138, IE may throw an exception when accessing |
|
8616 |
// a field from window.location if document.domain has been set |
|
8617 |
try { |
|
8618 |
ajaxLocation = location.href; |
|
8619 |
} catch( e ) { |
|
8620 |
// Use the href attribute of an A element |
|
8621 |
// since IE will modify it given document.location |
|
8622 |
ajaxLocation = document.createElement( "a" ); |
|
8623 |
ajaxLocation.href = ""; |
|
8624 |
ajaxLocation = ajaxLocation.href; |
|
8625 |
} |
|
8626 | ||
8627 |
// Segment location into parts |
|
8628 |
ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; |
|
8629 | ||
8630 |
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport |
|
8631 |
function addToPrefiltersOrTransports( structure ) { |
|
8632 | ||
8633 |
// dataTypeExpression is optional and defaults to "*" |
|
8634 |
return function( dataTypeExpression, func ) { |
|
8635 | ||
8636 |
if ( typeof dataTypeExpression !== "string" ) { |
|
8637 |
func = dataTypeExpression; |
|
8638 |
dataTypeExpression = "*"; |
|
8639 |
} |
|
8640 | ||
8641 |
var dataType, |
|
8642 |
i = 0, |
|
8643 |
dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; |
|
8644 | ||
8645 |
if ( jQuery.isFunction( func ) ) { |
|
8646 |
// For each dataType in the dataTypeExpression |
|
8647 |
while ( (dataType = dataTypes[i++]) ) { |
|
8648 |
// Prepend if requested |
|
8649 |
if ( dataType.charAt( 0 ) === "+" ) { |
|
8650 |
dataType = dataType.slice( 1 ) || "*"; |
|
8651 |
(structure[ dataType ] = structure[ dataType ] || []).unshift( func ); |
|
8652 | ||
8653 |
// Otherwise append |
|
8654 |
} else { |
|
8655 |
(structure[ dataType ] = structure[ dataType ] || []).push( func ); |
|
8656 |
} |
|
8657 |
} |
|
8658 |
} |
|
8659 |
}; |
|
8660 |
} |
|
8661 | ||
8662 |
// Base inspection function for prefilters and transports |
|
8663 |
function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { |
|
8664 | ||
8665 |
var inspected = {}, |
|
8666 |
seekingTransport = ( structure === transports ); |
|
8667 | ||
8668 |
function inspect( dataType ) { |
|
8669 |
var selected; |
|
8670 |
inspected[ dataType ] = true; |
|
8671 |
jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { |
|
8672 |
var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); |
|
8673 |
if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { |
|
8674 |
options.dataTypes.unshift( dataTypeOrTransport ); |
|
8675 |
inspect( dataTypeOrTransport ); |
|
8676 |
return false; |
|
8677 |
} else if ( seekingTransport ) { |
|
8678 |
return !( selected = dataTypeOrTransport ); |
|
8679 |
} |
|
8680 |
}); |
|
8681 |
return selected; |
|
8682 |
} |
|
8683 | ||
8684 |
return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); |
|
8685 |
} |
|
8686 | ||
8687 |
// A special extend for ajax options |
|
8688 |
// that takes "flat" options (not to be deep extended) |
|
8689 |
// Fixes #9887 |
|
8690 |
function ajaxExtend( target, src ) { |
|
8691 |
var deep, key, |
|
8692 |
flatOptions = jQuery.ajaxSettings.flatOptions || {}; |
|
8693 | ||
8694 |
for ( key in src ) { |
|
8695 |
if ( src[ key ] !== undefined ) { |
|
8696 |
( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; |
|
8697 |
} |
|
8698 |
} |
|
8699 |
if ( deep ) { |
|
8700 |
jQuery.extend( true, target, deep ); |
|
8701 |
} |
|
8702 | ||
8703 |
return target; |
|
8704 |
} |
|
8705 | ||
8706 |
/* Handles responses to an ajax request: |
|
8707 |
* - finds the right dataType (mediates between content-type and expected dataType) |
|
8708 |
* - returns the corresponding response |
|
8709 |
*/ |
|
8710 |
function ajaxHandleResponses( s, jqXHR, responses ) { |
|
8711 |
var firstDataType, ct, finalDataType, type, |
|
8712 |
contents = s.contents, |
|
8713 |
dataTypes = s.dataTypes; |
|
8714 | ||
8715 |
// Remove auto dataType and get content-type in the process |
|
8716 |
while ( dataTypes[ 0 ] === "*" ) { |
|
8717 |
dataTypes.shift(); |
|
8718 |
if ( ct === undefined ) { |
|
8719 |
ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); |
|
8720 |
} |
|
8721 |
} |
|
8722 | ||
8723 |
// Check if we're dealing with a known content-type |
|
8724 |
if ( ct ) { |
|
8725 |
for ( type in contents ) { |
|
8726 |
if ( contents[ type ] && contents[ type ].test( ct ) ) { |
|
8727 |
dataTypes.unshift( type ); |
|
8728 |
break; |
|
8729 |
} |
|
8730 |
} |
|
8731 |
} |
|
8732 | ||
8733 |
// Check to see if we have a response for the expected dataType |
|
8734 |
if ( dataTypes[ 0 ] in responses ) { |
|
8735 |
finalDataType = dataTypes[ 0 ]; |
|
8736 |
} else { |
|
8737 |
// Try convertible dataTypes |
|
8738 |
for ( type in responses ) { |
|
8739 |
if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { |
|
8740 |
finalDataType = type; |
|
8741 |
break; |
|
8742 |
} |
|
8743 |
if ( !firstDataType ) { |
|
8744 |
firstDataType = type; |
|
8745 |
} |
|
8746 |
} |
|
8747 |
// Or just use first one |
|
8748 |
finalDataType = finalDataType || firstDataType; |
|
8749 |
} |
|
8750 | ||
8751 |
// If we found a dataType |
|
8752 |
// We add the dataType to the list if needed |
|
8753 |
// and return the corresponding response |
|
8754 |
if ( finalDataType ) { |
|
8755 |
if ( finalDataType !== dataTypes[ 0 ] ) { |
|
8756 |
dataTypes.unshift( finalDataType ); |
|
8757 |
} |
|
8758 |
return responses[ finalDataType ]; |
|
8759 |
} |
|
8760 |
} |
|
8761 | ||
8762 |
/* Chain conversions given the request and the original response |
|
8763 |
* Also sets the responseXXX fields on the jqXHR instance |
|
8764 |
*/ |
|
8765 |
function ajaxConvert( s, response, jqXHR, isSuccess ) { |
|
8766 |
var conv2, current, conv, tmp, prev, |
|
8767 |
converters = {}, |
|
8768 |
// Work with a copy of dataTypes in case we need to modify it for conversion |
|
8769 |
dataTypes = s.dataTypes.slice(); |
|
8770 | ||
8771 |
// Create converters map with lowercased keys |
|
8772 |
if ( dataTypes[ 1 ] ) { |
|
8773 |
for ( conv in s.converters ) { |
|
8774 |
converters[ conv.toLowerCase() ] = s.converters[ conv ]; |
|
8775 |
} |
|
8776 |
} |
|
8777 | ||
8778 |
current = dataTypes.shift(); |
|
8779 | ||
8780 |
// Convert to each sequential dataType |
|
8781 |
while ( current ) { |
|
8782 | ||
8783 |
if ( s.responseFields[ current ] ) { |
|
8784 |
jqXHR[ s.responseFields[ current ] ] = response; |
|
8785 |
} |
|
8786 | ||
8787 |
// Apply the dataFilter if provided |
|
8788 |
if ( !prev && isSuccess && s.dataFilter ) { |
|
8789 |
response = s.dataFilter( response, s.dataType ); |
|
8790 |
} |
|
8791 | ||
8792 |
prev = current; |
|
8793 |
current = dataTypes.shift(); |
|
8794 | ||
8795 |
if ( current ) { |
|
8796 | ||
8797 |
// There's only work to do if current dataType is non-auto |
|
8798 |
if ( current === "*" ) { |
|
8799 | ||
8800 |
current = prev; |
|
8801 | ||
8802 |
// Convert response if prev dataType is non-auto and differs from current |
|
8803 |
} else if ( prev !== "*" && prev !== current ) { |
|
8804 | ||
8805 |
// Seek a direct converter |
|
8806 |
conv = converters[ prev + " " + current ] || converters[ "* " + current ]; |
|
8807 | ||
8808 |
// If none found, seek a pair |
|
8809 |
if ( !conv ) { |
|
8810 |
for ( conv2 in converters ) { |
|
8811 | ||
8812 |
// If conv2 outputs current |
|
8813 |
tmp = conv2.split( " " ); |
|
8814 |
if ( tmp[ 1 ] === current ) { |
|
8815 | ||
8816 |
// If prev can be converted to accepted input |
|
8817 |
conv = converters[ prev + " " + tmp[ 0 ] ] || |
|
8818 |
converters[ "* " + tmp[ 0 ] ]; |
|
8819 |
if ( conv ) { |
|
8820 |
// Condense equivalence converters |
|
8821 |
if ( conv === true ) { |
|
8822 |
conv = converters[ conv2 ]; |
|
8823 | ||
8824 |
// Otherwise, insert the intermediate dataType |
|
8825 |
} else if ( converters[ conv2 ] !== true ) { |
|
8826 |
current = tmp[ 0 ]; |
|
8827 |
dataTypes.unshift( tmp[ 1 ] ); |
|
8828 |
} |
|
8829 |
break; |
|
8830 |
} |
|
8831 |
} |
|
8832 |
} |
|
8833 |
} |
|
8834 | ||
8835 |
// Apply converter (if not an equivalence) |
|
8836 |
if ( conv !== true ) { |
|
8837 | ||
8838 |
// Unless errors are allowed to bubble, catch and return them |
|
8839 |
if ( conv && s[ "throws" ] ) { |
|
8840 |
response = conv( response ); |
|
8841 |
} else { |
|
8842 |
try { |
|
8843 |
response = conv( response ); |
|
8844 |
} catch ( e ) { |
|
8845 |
return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; |
|
8846 |
} |
|
8847 |
} |
|
8848 |
} |
|
8849 |
} |
|
8850 |
} |
|
8851 |
} |
|
8852 | ||
8853 |
return { state: "success", data: response }; |
|
8854 |
} |
|
8855 | ||
8856 |
jQuery.extend({ |
|
8857 | ||
8858 |
// Counter for holding the number of active queries |
|
8859 |
active: 0, |
|
8860 | ||
8861 |
// Last-Modified header cache for next request |
|
8862 |
lastModified: {}, |
|
8863 |
etag: {}, |
|
8864 | ||
8865 |
ajaxSettings: { |
|
8866 |
url: ajaxLocation, |
|
8867 |
type: "GET", |
|
8868 |
isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), |
|
8869 |
global: true, |
|
8870 |
processData: true, |
|
8871 |
async: true, |
|
8872 |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", |
|
8873 |
/* |
|
8874 |
timeout: 0, |
|
8875 |
data: null, |
|
8876 |
dataType: null, |
|
8877 |
username: null, |
|
8878 |
password: null, |
|
8879 |
cache: null, |
|
8880 |
throws: false, |
|
8881 |
traditional: false, |
|
8882 |
headers: {}, |
|
8883 |
*/ |
|
8884 | ||
8885 |
accepts: { |
|
8886 |
"*": allTypes, |
|
8887 |
text: "text/plain", |
|
8888 |
html: "text/html", |
|
8889 |
xml: "application/xml, text/xml", |
|
8890 |
json: "application/json, text/javascript" |
|
8891 |
}, |
|
8892 | ||
8893 |
contents: { |
|
8894 |
xml: /xml/, |
|
8895 |
html: /html/, |
|
8896 |
json: /json/ |
|
8897 |
}, |
|
8898 | ||
8899 |
responseFields: { |
|
8900 |
xml: "responseXML", |
|
8901 |
text: "responseText", |
|
8902 |
json: "responseJSON" |
|
8903 |
}, |
|
8904 | ||
8905 |
// Data converters |
|
8906 |
// Keys separate source (or catchall "*") and destination types with a single space |
|
8907 |
converters: { |
|
8908 | ||
8909 |
// Convert anything to text |
|
8910 |
"* text": String, |
|
8911 | ||
8912 |
// Text to html (true = no transformation) |
|
8913 |
"text html": true, |
|
8914 | ||
8915 |
// Evaluate text as a json expression |
|
8916 |
"text json": jQuery.parseJSON, |
|
8917 | ||
8918 |
// Parse text as xml |
|
8919 |
"text xml": jQuery.parseXML |
|
8920 |
}, |
|
8921 | ||
8922 |
// For options that shouldn't be deep extended: |
|
8923 |
// you can add your own custom options here if |
|
8924 |
// and when you create one that shouldn't be |
|
8925 |
// deep extended (see ajaxExtend) |
|
8926 |
flatOptions: { |
|
8927 |
url: true, |
|
8928 |
context: true |
|
8929 |
} |
|
8930 |
}, |
|
8931 | ||
8932 |
// Creates a full fledged settings object into target |
|
8933 |
// with both ajaxSettings and settings fields. |
|
8934 |
// If target is omitted, writes into ajaxSettings. |
|
8935 |
ajaxSetup: function( target, settings ) { |
|
8936 |
return settings ? |
|
8937 | ||
8938 |
// Building a settings object |
|
8939 |
ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : |
|
8940 | ||
8941 |
// Extending ajaxSettings |
|
8942 |
ajaxExtend( jQuery.ajaxSettings, target ); |
|
8943 |
}, |
|
8944 | ||
8945 |
ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), |
|
8946 |
ajaxTransport: addToPrefiltersOrTransports( transports ), |
|
8947 | ||
8948 |
// Main method |
|
8949 |
ajax: function( url, options ) { |
|
8950 | ||
8951 |
// If url is an object, simulate pre-1.5 signature |
|
8952 |
if ( typeof url === "object" ) { |
|
8953 |
options = url; |
|
8954 |
url = undefined; |
|
8955 |
} |
|
8956 | ||
8957 |
// Force options to be an object |
|
8958 |
options = options || {}; |
|
8959 | ||
8960 |
var // Cross-domain detection vars |
|
8961 |
parts, |
|
8962 |
// Loop variable |
|
8963 |
i, |
|
8964 |
// URL without anti-cache param |
|
8965 |
cacheURL, |
|
8966 |
// Response headers as string |
|
8967 |
responseHeadersString, |
|
8968 |
// timeout handle |
|
8969 |
timeoutTimer, |
|
8970 | ||
8971 |
// To know if global events are to be dispatched |
|
8972 |
fireGlobals, |
|
8973 | ||
8974 |
transport, |
|
8975 |
// Response headers |
|
8976 |
responseHeaders, |
|
8977 |
// Create the final options object |
|
8978 |
s = jQuery.ajaxSetup( {}, options ), |
|
8979 |
// Callbacks context |
|
8980 |
callbackContext = s.context || s, |
|
8981 |
// Context for global events is callbackContext if it is a DOM node or jQuery collection |
|
8982 |
globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? |
|
8983 |
jQuery( callbackContext ) : |
|
8984 |
jQuery.event, |
|
8985 |
// Deferreds |
|
8986 |
deferred = jQuery.Deferred(), |
|
8987 |
completeDeferred = jQuery.Callbacks("once memory"), |
|
8988 |
// Status-dependent callbacks |
|
8989 |
statusCode = s.statusCode || {}, |
|
8990 |
// Headers (they are sent all at once) |
|
8991 |
requestHeaders = {}, |
|
8992 |
requestHeadersNames = {}, |
|
8993 |
// The jqXHR state |
|
8994 |
state = 0, |
|
8995 |
// Default abort message |
|
8996 |
strAbort = "canceled", |
|
8997 |
// Fake xhr |
|
8998 |
jqXHR = { |
|
8999 |
readyState: 0, |
|
9000 | ||
9001 |
// Builds headers hashtable if needed |
|
9002 |
getResponseHeader: function( key ) { |
|
9003 |
var match; |
|
9004 |
if ( state === 2 ) { |
|
9005 |
if ( !responseHeaders ) { |
|
9006 |
responseHeaders = {}; |
|
9007 |
while ( (match = rheaders.exec( responseHeadersString )) ) { |
|
9008 |
responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; |
|
9009 |
} |
|
9010 |
} |
|
9011 |
match = responseHeaders[ key.toLowerCase() ]; |
|
9012 |
} |
|
9013 |
return match == null ? null : match; |
|
9014 |
}, |
|
9015 | ||
9016 |
// Raw string |
|
9017 |
getAllResponseHeaders: function() { |
|
9018 |
return state === 2 ? responseHeadersString : null; |
|
9019 |
}, |
|
9020 | ||
9021 |
// Caches the header |
|
9022 |
setRequestHeader: function( name, value ) { |
|
9023 |
var lname = name.toLowerCase(); |
|
9024 |
if ( !state ) { |
|
9025 |
name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; |
|
9026 |
requestHeaders[ name ] = value; |
|
9027 |
} |
|
9028 |
return this; |
|
9029 |
}, |
|
9030 | ||
9031 |
// Overrides response content-type header |
|
9032 |
overrideMimeType: function( type ) { |
|
9033 |
if ( !state ) { |
|
9034 |
s.mimeType = type; |
|
9035 |
} |
|
9036 |
return this; |
|
9037 |
}, |
|
9038 | ||
9039 |
// Status-dependent callbacks |
|
9040 |
statusCode: function( map ) { |
|
9041 |
var code; |
|
9042 |
if ( map ) { |
|
9043 |
if ( state < 2 ) { |
|
9044 |
for ( code in map ) { |
|
9045 |
// Lazy-add the new callback in a way that preserves old ones |
|
9046 |
statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; |
|
9047 |
} |
|
9048 |
} else { |
|
9049 |
// Execute the appropriate callbacks |
|
9050 |
jqXHR.always( map[ jqXHR.status ] ); |
|
9051 |
} |
|
9052 |
} |
|
9053 |
return this; |
|
9054 |
}, |
|
9055 | ||
9056 |
// Cancel the request |
|
9057 |
abort: function( statusText ) { |
|
9058 |
var finalText = statusText || strAbort; |
|
9059 |
if ( transport ) { |
|
9060 |
transport.abort( finalText ); |
|
9061 |
} |
|
9062 |
done( 0, finalText ); |
|
9063 |
return this; |
|
9064 |
} |
|
9065 |
}; |
|
9066 | ||
9067 |
// Attach deferreds |
|
9068 |
deferred.promise( jqXHR ).complete = completeDeferred.add; |
|
9069 |
jqXHR.success = jqXHR.done; |
|
9070 |
jqXHR.error = jqXHR.fail; |
|
9071 | ||
9072 |
// Remove hash character (#7531: and string promotion) |
|
9073 |
// Add protocol if not provided (#5866: IE7 issue with protocol-less urls) |
|
9074 |
// Handle falsy url in the settings object (#10093: consistency with old signature) |
|
9075 |
// We also use the url parameter if available |
|
9076 |
s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); |
|
9077 | ||
9078 |
// Alias method option to type as per ticket #12004 |
|
9079 |
s.type = options.method || options.type || s.method || s.type; |
|
9080 | ||
9081 |
// Extract dataTypes list |
|
9082 |
s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; |
|
9083 | ||
9084 |
// A cross-domain request is in order when we have a protocol:host:port mismatch |
|
9085 |
if ( s.crossDomain == null ) { |
|
9086 |
parts = rurl.exec( s.url.toLowerCase() ); |
|
9087 |
s.crossDomain = !!( parts && |
|
9088 |
( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || |
|
9089 |
( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== |
|
9090 |
( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) |
|
9091 |
); |
|
9092 |
} |
|
9093 | ||
9094 |
// Convert data if not already a string |
|
9095 |
if ( s.data && s.processData && typeof s.data !== "string" ) { |
|
9096 |
s.data = jQuery.param( s.data, s.traditional ); |
|
9097 |
} |
|
9098 | ||
9099 |
// Apply prefilters |
|
9100 |
inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); |
|
9101 | ||
9102 |
// If request was aborted inside a prefilter, stop there |
|
9103 |
if ( state === 2 ) { |
|
9104 |
return jqXHR; |
|
9105 |
} |
|
9106 | ||
9107 |
// We can fire global events as of now if asked to |
|
9108 |
fireGlobals = s.global; |
|
9109 | ||
9110 |
// Watch for a new set of requests |
|
9111 |
if ( fireGlobals && jQuery.active++ === 0 ) { |
|
9112 |
jQuery.event.trigger("ajaxStart"); |
|
9113 |
} |
|
9114 | ||
9115 |
// Uppercase the type |
|
9116 |
s.type = s.type.toUpperCase(); |
|
9117 | ||
9118 |
// Determine if request has content |
|
9119 |
s.hasContent = !rnoContent.test( s.type ); |
|
9120 | ||
9121 |
// Save the URL in case we're toying with the If-Modified-Since |
|
9122 |
// and/or If-None-Match header later on |
|
9123 |
cacheURL = s.url; |
|
9124 | ||
9125 |
// More options handling for requests with no content |
|
9126 |
if ( !s.hasContent ) { |
|
9127 | ||
9128 |
// If data is available, append data to url |
|
9129 |
if ( s.data ) { |
|
9130 |
cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); |
|
9131 |
// #9682: remove data so that it's not used in an eventual retry |
|
9132 |
delete s.data; |
|
9133 |
} |
|
9134 | ||
9135 |
// Add anti-cache in url if needed |
|
9136 |
if ( s.cache === false ) { |
|
9137 |
s.url = rts.test( cacheURL ) ? |
|
9138 | ||
9139 |
// If there is already a '_' parameter, set its value |
|
9140 |
cacheURL.replace( rts, "$1_=" + nonce++ ) : |
|
9141 | ||
9142 |
// Otherwise add one to the end |
|
9143 |
cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; |
|
9144 |
} |
|
9145 |
} |
|
9146 | ||
9147 |
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. |
|
9148 |
if ( s.ifModified ) { |
|
9149 |
if ( jQuery.lastModified[ cacheURL ] ) { |
|
9150 |
jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); |
|
9151 |
} |
|
9152 |
if ( jQuery.etag[ cacheURL ] ) { |
|
9153 |
jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); |
|
9154 |
} |
|
9155 |
} |
|
9156 | ||
9157 |
// Set the correct header, if data is being sent |
|
9158 |
if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { |
|
9159 |
jqXHR.setRequestHeader( "Content-Type", s.contentType ); |
|
9160 |
} |
|
9161 | ||
9162 |
// Set the Accepts header for the server, depending on the dataType |
|
9163 |
jqXHR.setRequestHeader( |
|
9164 |
"Accept", |
|
9165 |
s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? |
|
9166 |
s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : |
|
9167 |
s.accepts[ "*" ] |
|
9168 |
); |
|
9169 | ||
9170 |
// Check for headers option |
|
9171 |
for ( i in s.headers ) { |
|
9172 |
jqXHR.setRequestHeader( i, s.headers[ i ] ); |
|
9173 |
} |
|
9174 | ||
9175 |
// Allow custom headers/mimetypes and early abort |
|
9176 |
if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { |
|
9177 |
// Abort if not done already and return |
|
9178 |
return jqXHR.abort(); |
|
9179 |
} |
|
9180 | ||
9181 |
// aborting is no longer a cancellation |
|
9182 |
strAbort = "abort"; |
|
9183 | ||
9184 |
// Install callbacks on deferreds |
|
9185 |
for ( i in { success: 1, error: 1, complete: 1 } ) { |
|
9186 |
jqXHR[ i ]( s[ i ] ); |
|
9187 |
} |
|
9188 | ||
9189 |
// Get transport |
|
9190 |
transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); |
|
9191 | ||
9192 |
// If no transport, we auto-abort |
|
9193 |
if ( !transport ) { |
|
9194 |
done( -1, "No Transport" ); |
|
9195 |
} else { |
|
9196 |
jqXHR.readyState = 1; |
|
9197 | ||
9198 |
// Send global event |
|
9199 |
if ( fireGlobals ) { |
|
9200 |
globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); |
|
9201 |
} |
|
9202 |
// Timeout |
|
9203 |
if ( s.async && s.timeout > 0 ) { |
|
9204 |
timeoutTimer = setTimeout(function() { |
|
9205 |
jqXHR.abort("timeout"); |
|
9206 |
}, s.timeout ); |
|
9207 |
} |
|
9208 | ||
9209 |
try { |
|
9210 |
state = 1; |
|
9211 |
transport.send( requestHeaders, done ); |
|
9212 |
} catch ( e ) { |
|
9213 |
// Propagate exception as error if not done |
|
9214 |
if ( state < 2 ) { |
|
9215 |
done( -1, e ); |
|
9216 |
// Simply rethrow otherwise |
|
9217 |
} else { |
|
9218 |
throw e; |
|
9219 |
} |
|
9220 |
} |
|
9221 |
} |
|
9222 | ||
9223 |
// Callback for when everything is done |
|
9224 |
function done( status, nativeStatusText, responses, headers ) { |
|
9225 |
var isSuccess, success, error, response, modified, |
|
9226 |
statusText = nativeStatusText; |
|
9227 | ||
9228 |
// Called once |
|
9229 |
if ( state === 2 ) { |
|
9230 |
return; |
|
9231 |
} |
|
9232 | ||
9233 |
// State is "done" now |
|
9234 |
state = 2; |
|
9235 | ||
9236 |
// Clear timeout if it exists |
|
9237 |
if ( timeoutTimer ) { |
|
9238 |
clearTimeout( timeoutTimer ); |
|
9239 |
} |
|
9240 | ||
9241 |
// Dereference transport for early garbage collection |
|
9242 |
// (no matter how long the jqXHR object will be used) |
|
9243 |
transport = undefined; |
|
9244 | ||
9245 |
// Cache response headers |
|
9246 |
responseHeadersString = headers || ""; |
|
9247 | ||
9248 |
// Set readyState |
|
9249 |
jqXHR.readyState = status > 0 ? 4 : 0; |
|
9250 | ||
9251 |
// Determine if successful |
|
9252 |
isSuccess = status >= 200 && status < 300 || status === 304; |
|
9253 | ||
9254 |
// Get response data |
|
9255 |
if ( responses ) { |
|
9256 |
response = ajaxHandleResponses( s, jqXHR, responses ); |
|
9257 |
} |
|
9258 | ||
9259 |
// Convert no matter what (that way responseXXX fields are always set) |
|
9260 |
response = ajaxConvert( s, response, jqXHR, isSuccess ); |
|
9261 | ||
9262 |
// If successful, handle type chaining |
|
9263 |
if ( isSuccess ) { |
|
9264 | ||
9265 |
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. |
|
9266 |
if ( s.ifModified ) { |
|
9267 |
modified = jqXHR.getResponseHeader("Last-Modified"); |
|
9268 |
if ( modified ) { |
|
9269 |
jQuery.lastModified[ cacheURL ] = modified; |
|
9270 |
} |
|
9271 |
modified = jqXHR.getResponseHeader("etag"); |
|
9272 |
if ( modified ) { |
|
9273 |
jQuery.etag[ cacheURL ] = modified; |
|
9274 |
} |
|
9275 |
} |
|
9276 | ||
9277 |
// if no content |
|
9278 |
if ( status === 204 || s.type === "HEAD" ) { |
|
9279 |
statusText = "nocontent"; |
|
9280 | ||
9281 |
// if not modified |
|
9282 |
} else if ( status === 304 ) { |
|
9283 |
statusText = "notmodified"; |
|
9284 | ||
9285 |
// If we have data, let's convert it |
|
9286 |
} else { |
|
9287 |
statusText = response.state; |
|
9288 |
success = response.data; |
|
9289 |
error = response.error; |
|
9290 |
isSuccess = !error; |
|
9291 |
} |
|
9292 |
} else { |
|
9293 |
// We extract error from statusText |
|
9294 |
// then normalize statusText and status for non-aborts |
|
9295 |
error = statusText; |
|
9296 |
if ( status || !statusText ) { |
|
9297 |
statusText = "error"; |
|
9298 |
if ( status < 0 ) { |
|
9299 |
status = 0; |
|
9300 |
} |
|
9301 |
} |
|
9302 |
} |
|
9303 | ||
9304 |
// Set data for the fake xhr object |
|
9305 |
jqXHR.status = status; |
|
9306 |
jqXHR.statusText = ( nativeStatusText || statusText ) + ""; |
|
9307 | ||
9308 |
// Success/Error |
|
9309 |
if ( isSuccess ) { |
|
9310 |
deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); |
|
9311 |
} else { |
|
9312 |
deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); |
|
9313 |
} |
|
9314 | ||
9315 |
// Status-dependent callbacks |
|
9316 |
jqXHR.statusCode( statusCode ); |
|
9317 |
statusCode = undefined; |
|
9318 | ||
9319 |
if ( fireGlobals ) { |
|
9320 |
globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", |
|
9321 |
[ jqXHR, s, isSuccess ? success : error ] ); |
|
9322 |
} |
|
9323 | ||
9324 |
// Complete |
|
9325 |
completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); |
|
9326 | ||
9327 |
if ( fireGlobals ) { |
|
9328 |
globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); |
|
9329 |
// Handle the global AJAX counter |
|
9330 |
if ( !( --jQuery.active ) ) { |
|
9331 |
jQuery.event.trigger("ajaxStop"); |
|
9332 |
} |
|
9333 |
} |
|
9334 |
} |
|
9335 | ||
9336 |
return jqXHR; |
|
9337 |
}, |
|
9338 | ||
9339 |
getJSON: function( url, data, callback ) { |
|
9340 |
return jQuery.get( url, data, callback, "json" ); |
|
9341 |
}, |
|
9342 | ||
9343 |
getScript: function( url, callback ) { |
|
9344 |
return jQuery.get( url, undefined, callback, "script" ); |
|
9345 |
} |
|
9346 |
}); |
|
9347 | ||
9348 |
jQuery.each( [ "get", "post" ], function( i, method ) { |
|
9349 |
jQuery[ method ] = function( url, data, callback, type ) { |
|
9350 |
// shift arguments if data argument was omitted |
|
9351 |
if ( jQuery.isFunction( data ) ) { |
|
9352 |
type = type || callback; |
|
9353 |
callback = data; |
|
9354 |
data = undefined; |
|
9355 |
} |
|
9356 | ||
9357 |
return jQuery.ajax({ |
|
9358 |
url: url, |
|
9359 |
type: method, |
|
9360 |
dataType: type, |
|
9361 |
data: data, |
|
9362 |
success: callback |
|
9363 |
}); |
|
9364 |
}; |
|
9365 |
}); |
|
9366 | ||
9367 |
// Attach a bunch of functions for handling common AJAX events |
|
9368 |
jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { |
|
9369 |
jQuery.fn[ type ] = function( fn ) { |
|
9370 |
return this.on( type, fn ); |
|
9371 |
}; |
|
9372 |
}); |
|
9373 | ||
9374 | ||
9375 |
jQuery._evalUrl = function( url ) { |
|
9376 |
return jQuery.ajax({ |
|
9377 |
url: url, |
|
9378 |
type: "GET", |
|
9379 |
dataType: "script", |
|
9380 |
async: false, |
|
9381 |
global: false, |
|
9382 |
"throws": true |
|
9383 |
}); |
|
9384 |
}; |
|
9385 | ||
9386 | ||
9387 |
jQuery.fn.extend({ |
|
9388 |
wrapAll: function( html ) { |
|
9389 |
if ( jQuery.isFunction( html ) ) { |
|
9390 |
return this.each(function(i) { |
|
9391 |
jQuery(this).wrapAll( html.call(this, i) ); |
|
9392 |
}); |
|
9393 |
} |
|
9394 | ||
9395 |
if ( this[0] ) { |
|
9396 |
// The elements to wrap the target around |
|
9397 |
var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); |
|
9398 | ||
9399 |
if ( this[0].parentNode ) { |
|
9400 |
wrap.insertBefore( this[0] ); |
|
9401 |
} |
|
9402 | ||
9403 |
wrap.map(function() { |
|
9404 |
var elem = this; |
|
9405 | ||
9406 |
while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { |
|
9407 |
elem = elem.firstChild; |
|
9408 |
} |
|
9409 | ||
9410 |
return elem; |
|
9411 |
}).append( this ); |
|
9412 |
} |
|
9413 | ||
9414 |
return this; |
|
9415 |
}, |
|
9416 | ||
9417 |
wrapInner: function( html ) { |
|
9418 |
if ( jQuery.isFunction( html ) ) { |
|
9419 |
return this.each(function(i) { |
|
9420 |
jQuery(this).wrapInner( html.call(this, i) ); |
|
9421 |
}); |
|
9422 |
} |
|
9423 | ||
9424 |
return this.each(function() { |
|
9425 |
var self = jQuery( this ), |
|
9426 |
contents = self.contents(); |
|
9427 | ||
9428 |
if ( contents.length ) { |
|
9429 |
contents.wrapAll( html ); |
|
9430 | ||
9431 |
} else { |
|
9432 |
self.append( html ); |
|
9433 |
} |
|
9434 |
}); |
|
9435 |
}, |
|
9436 | ||
9437 |
wrap: function( html ) { |
|
9438 |
var isFunction = jQuery.isFunction( html ); |
|
9439 | ||
9440 |
return this.each(function(i) { |
|
9441 |
jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); |
|
9442 |
}); |
|
9443 |
}, |
|
9444 | ||
9445 |
unwrap: function() { |
|
9446 |
return this.parent().each(function() { |
|
9447 |
if ( !jQuery.nodeName( this, "body" ) ) { |
|
9448 |
jQuery( this ).replaceWith( this.childNodes ); |
|
9449 |
} |
|
9450 |
}).end(); |
|
9451 |
} |
|
9452 |
}); |
|
9453 | ||
9454 | ||
9455 |
jQuery.expr.filters.hidden = function( elem ) { |
|
9456 |
// Support: Opera <= 12.12 |
|
9457 |
// Opera reports offsetWidths and offsetHeights less than zero on some elements |
|
9458 |
return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 || |
|
9459 |
(!support.reliableHiddenOffsets() && |
|
9460 |
((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none"); |
|
9461 |
}; |
|
9462 | ||
9463 |
jQuery.expr.filters.visible = function( elem ) { |
|
9464 |
return !jQuery.expr.filters.hidden( elem ); |
|
9465 |
}; |
|
9466 | ||
9467 | ||
9468 | ||
9469 | ||
9470 |
var r20 = /%20/g, |
|
9471 |
rbracket = /\[\]$/, |
|
9472 |
rCRLF = /\r?\n/g, |
|
9473 |
rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, |
|
9474 |
rsubmittable = /^(?:input|select|textarea|keygen)/i; |
|
9475 | ||
9476 |
function buildParams( prefix, obj, traditional, add ) { |
|
9477 |
var name; |
|
9478 | ||
9479 |
if ( jQuery.isArray( obj ) ) { |
|
9480 |
// Serialize array item. |
|
9481 |
jQuery.each( obj, function( i, v ) { |
|
9482 |
if ( traditional || rbracket.test( prefix ) ) { |
|
9483 |
// Treat each array item as a scalar. |
|
9484 |
add( prefix, v ); |
|
9485 | ||
9486 |
} else { |
|
9487 |
// Item is non-scalar (array or object), encode its numeric index. |
|
9488 |
buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); |
|
9489 |
} |
|
9490 |
}); |
|
9491 | ||
9492 |
} else if ( !traditional && jQuery.type( obj ) === "object" ) { |
|
9493 |
// Serialize object item. |
|
9494 |
for ( name in obj ) { |
|
9495 |
buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); |
|
9496 |
} |
|
9497 | ||
9498 |
} else { |
|
9499 |
// Serialize scalar item. |
|
9500 |
add( prefix, obj ); |
|
9501 |
} |
|
9502 |
} |
|
9503 | ||
9504 |
// Serialize an array of form elements or a set of |
|
9505 |
// key/values into a query string |
|
9506 |
jQuery.param = function( a, traditional ) { |
|
9507 |
var prefix, |
|
9508 |
s = [], |
|
9509 |
add = function( key, value ) { |
|
9510 |
// If value is a function, invoke it and return its value |
|
9511 |
value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); |
|
9512 |
s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); |
|
9513 |
}; |
|
9514 | ||
9515 |
// Set traditional to true for jQuery <= 1.3.2 behavior. |
|
9516 |
if ( traditional === undefined ) { |
|
9517 |
traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; |
|
9518 |
} |
|
9519 | ||
9520 |
// If an array was passed in, assume that it is an array of form elements. |
|
9521 |
if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { |
|
9522 |
// Serialize the form elements |
|
9523 |
jQuery.each( a, function() { |
|
9524 |
add( this.name, this.value ); |
|
9525 |
}); |
|
9526 | ||
9527 |
} else { |
|
9528 |
// If traditional, encode the "old" way (the way 1.3.2 or older |
|
9529 |
// did it), otherwise encode params recursively. |
|
9530 |
for ( prefix in a ) { |
|
9531 |
buildParams( prefix, a[ prefix ], traditional, add ); |
|
9532 |
} |
|
9533 |
} |
|
9534 | ||
9535 |
// Return the resulting serialization |
|
9536 |
return s.join( "&" ).replace( r20, "+" ); |
|
9537 |
}; |
|
9538 | ||
9539 |
jQuery.fn.extend({ |
|
9540 |
serialize: function() { |
|
9541 |
return jQuery.param( this.serializeArray() ); |
|
9542 |
}, |
|
9543 |
serializeArray: function() { |
|
9544 |
return this.map(function() { |
|
9545 |
// Can add propHook for "elements" to filter or add form elements |
|
9546 |
var elements = jQuery.prop( this, "elements" ); |
|
9547 |
return elements ? jQuery.makeArray( elements ) : this; |
|
9548 |
}) |
|
9549 |
.filter(function() { |
|
9550 |
var type = this.type; |
|
9551 |
// Use .is(":disabled") so that fieldset[disabled] works |
|
9552 |
return this.name && !jQuery( this ).is( ":disabled" ) && |
|
9553 |
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && |
|
9554 |
( this.checked || !rcheckableType.test( type ) ); |
|
9555 |
}) |
|
9556 |
.map(function( i, elem ) { |
|
9557 |
var val = jQuery( this ).val(); |
|
9558 | ||
9559 |
return val == null ? |
|
9560 |
null : |
|
9561 |
jQuery.isArray( val ) ? |
|
9562 |
jQuery.map( val, function( val ) { |
|
9563 |
return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; |
|
9564 |
}) : |
|
9565 |
{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; |
|
9566 |
}).get(); |
|
9567 |
} |
|
9568 |
}); |
|
9569 | ||
9570 | ||
9571 |
// Create the request object |
|
9572 |
// (This is still attached to ajaxSettings for backward compatibility) |
|
9573 |
jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ? |
|
9574 |
// Support: IE6+ |
|
9575 |
function() { |
|
9576 | ||
9577 |
// XHR cannot access local files, always use ActiveX for that case |
|
9578 |
return !this.isLocal && |
|
9579 | ||
9580 |
// Support: IE7-8 |
|
9581 |
// oldIE XHR does not support non-RFC2616 methods (#13240) |
|
9582 |
// See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx |
|
9583 |
// and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9 |
|
9584 |
// Although this check for six methods instead of eight |
|
9585 |
// since IE also does not support "trace" and "connect" |
|
9586 |
/^(get|post|head|put|delete|options)$/i.test( this.type ) && |
|
9587 | ||
9588 |
createStandardXHR() || createActiveXHR(); |